From: Mayank Prasad Date: June 13 2011 11:57am Subject: [Resend] bzr commit into mysql-trunk-wl5767 branch (mayank.prasad:3371) WL#5767 List-Archive: http://lists.mysql.com/commits/139147 Message-Id: <201106131157.p5DBvxRk026312@acsmt357.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1975636500==" --===============1975636500== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline [This commit e-mail is a repeat.] #At file:///home/mayank/mysql-tree/my_WL/5767/ based on revid:mayank.prasad@stripped 3371 Mayank Prasad 2011-06-13 WL#5767 : PERFORMANCE SCHEMA, statement digest Description: Fixed failing test case issues. added: mysql-test/suite/perfschema/r/dml_esms_by_digest.result mysql-test/suite/sys_vars/r/pfs_digests_size.result mysql-test/suite/sys_vars/t/pfs_digests_size-master_basic.opt mysql-test/suite/sys_vars/t/pfs_digests_size_basic.test modified: mysql-test/r/mysqld--help-notwin.result mysql-test/r/mysqld--help-win.result mysql-test/suite/perfschema/t/dml_esms_by_digest.test mysql-test/suite/sys_vars/r/all_vars.result sql/sys_vars.cc storage/perfschema/table_esms_by_digest.cc === modified file 'mysql-test/r/mysqld--help-notwin.result' --- a/mysql-test/r/mysqld--help-notwin.result 2011-05-26 05:50:01 +0000 +++ b/mysql-test/r/mysqld--help-notwin.result 2011-06-13 11:54:30 +0000 @@ -426,6 +426,8 @@ The following options may be given as th mrr_cost_based} and val is one of {on, off, default} --performance-schema Enable the performance schema. + --performance-schema-digests-size=# + Size of the statement digest. --performance-schema-events-stages-history-long-size=# Number of rows in EVENTS_STAGES_HISTORY_LONG. --performance-schema-events-stages-history-size=# @@ -896,6 +898,7 @@ optimizer-prune-level 1 optimizer-search-depth 62 optimizer-switch index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,engine_condition_pushdown=on,index_condition_pushdown=on,mrr=on,mrr_cost_based=on performance-schema FALSE +performance-schema-digests-size 200 performance-schema-events-stages-history-long-size 10000 performance-schema-events-stages-history-size 10 performance-schema-events-statements-history-long-size 10000 === modified file 'mysql-test/r/mysqld--help-win.result' --- a/mysql-test/r/mysqld--help-win.result 2011-05-26 05:50:01 +0000 +++ b/mysql-test/r/mysqld--help-win.result 2011-06-13 11:54:30 +0000 @@ -426,6 +426,8 @@ The following options may be given as th mrr_cost_based} and val is one of {on, off, default} --performance-schema Enable the performance schema. + --performance-schema-digests-size=# + Size of the statement digest. --performance-schema-events-stages-history-long-size=# Number of rows in EVENTS_STAGES_HISTORY_LONG. --performance-schema-events-stages-history-size=# === added file 'mysql-test/suite/perfschema/r/dml_esms_by_digest.result' --- a/mysql-test/suite/perfschema/r/dml_esms_by_digest.result 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/r/dml_esms_by_digest.result 2011-06-13 11:54:30 +0000 @@ -0,0 +1,27 @@ +select * from performance_schema.events_statements_summary_by_digest +where digest like 'XXYYZZ%' limit 1; +DIGEST DIGEST_TEXT COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT SUM_LOCK_TIME SUM_ERRORS SUM_WARNINGS SUM_ROWS_AFFECTED SUM_ROWS_SENT SUM_ROWS_EXAMINED SUM_CREATED_TMP_DISK_TABLES SUM_CREATED_TMP_TABLES SUM_SELECT_FULL_JOIN SUM_SELECT_FULL_RANGE_JOIN SUM_SELECT_RANGE SUM_SELECT_RANGE_CHECK SUM_SELECT_SCAN SUM_SORT_MERGE_PASSES SUM_SORT_RANGE SUM_SORT_ROWS SUM_SORT_SCAN SUM_NO_INDEX_USED SUM_NO_GOOD_INDEX_USED +select * from performance_schema.events_statements_summary_by_digest +where digest='XXYYZZ'; +DIGEST DIGEST_TEXT COUNT_STAR SUM_TIMER_WAIT MIN_TIMER_WAIT AVG_TIMER_WAIT MAX_TIMER_WAIT SUM_LOCK_TIME SUM_ERRORS SUM_WARNINGS SUM_ROWS_AFFECTED SUM_ROWS_SENT SUM_ROWS_EXAMINED SUM_CREATED_TMP_DISK_TABLES SUM_CREATED_TMP_TABLES SUM_SELECT_FULL_JOIN SUM_SELECT_FULL_RANGE_JOIN SUM_SELECT_RANGE SUM_SELECT_RANGE_CHECK SUM_SELECT_SCAN SUM_SORT_MERGE_PASSES SUM_SORT_RANGE SUM_SORT_ROWS SUM_SORT_SCAN SUM_NO_INDEX_USED SUM_NO_GOOD_INDEX_USED +insert into performance_schema.events_statements_summary_by_digest +set digest='XXYYZZ', count_star=1, sum_timer_wait=2, min_timer_wait=3, +avg_timer_wait=4, max_timer_wait=5; +ERROR 42000: INSERT command denied to user 'root'@'localhost' for table 'events_statements_summary_by_digest' +update performance_schema.events_statements_summary_by_digest +set count_star=12; +ERROR 42000: UPDATE command denied to user 'root'@'localhost' for table 'events_statements_summary_by_digest' +update performance_schema.events_statements_summary_by_digest +set count_star=12 where digest like "XXYYZZ"; +ERROR 42000: UPDATE command denied to user 'root'@'localhost' for table 'events_statements_summary_by_digest' +delete from performance_schema.events_statements_summary_by_digest +where count_star=1; +ERROR 42000: DELETE command denied to user 'root'@'localhost' for table 'events_statements_summary_by_digest' +delete from performance_schema.events_statements_summary_by_digest; +ERROR 42000: DELETE command denied to user 'root'@'localhost' for table 'events_statements_summary_by_digest' +LOCK TABLES performance_schema.events_statements_summary_by_digest READ; +ERROR 42000: SELECT, LOCK TABLES command denied to user 'root'@'localhost' for table 'events_statements_summary_by_digest' +UNLOCK TABLES; +LOCK TABLES performance_schema.events_statements_summary_by_digest WRITE; +ERROR 42000: SELECT, LOCK TABLES command denied to user 'root'@'localhost' for table 'events_statements_summary_by_digest' +UNLOCK TABLES; === modified file 'mysql-test/suite/perfschema/t/dml_esms_by_digest.test' --- a/mysql-test/suite/perfschema/t/dml_esms_by_digest.test 2011-05-16 11:20:58 +0000 +++ b/mysql-test/suite/perfschema/t/dml_esms_by_digest.test 2011-06-13 11:54:30 +0000 @@ -15,4 +15,42 @@ # Tests for PERFORMANCE_SCHEMA -############################## TBD ################################# +--source include/not_embedded.inc +--source include/have_perfschema.inc + +#--disable_result_log +select * from performance_schema.events_statements_summary_by_digest + where digest like 'XXYYZZ%' limit 1; + +select * from performance_schema.events_statements_summary_by_digest + where digest='XXYYZZ'; +#--enable_result_log + +--error ER_TABLEACCESS_DENIED_ERROR +insert into performance_schema.events_statements_summary_by_digest + set digest='XXYYZZ', count_star=1, sum_timer_wait=2, min_timer_wait=3, + avg_timer_wait=4, max_timer_wait=5; + +--error ER_TABLEACCESS_DENIED_ERROR +update performance_schema.events_statements_summary_by_digest + set count_star=12; + +--error ER_TABLEACCESS_DENIED_ERROR +update performance_schema.events_statements_summary_by_digest + set count_star=12 where digest like "XXYYZZ"; + +--error ER_TABLEACCESS_DENIED_ERROR +delete from performance_schema.events_statements_summary_by_digest + where count_star=1; + +--error ER_TABLEACCESS_DENIED_ERROR +delete from performance_schema.events_statements_summary_by_digest; + +-- error ER_TABLEACCESS_DENIED_ERROR +LOCK TABLES performance_schema.events_statements_summary_by_digest READ; +UNLOCK TABLES; + +-- error ER_TABLEACCESS_DENIED_ERROR +LOCK TABLES performance_schema.events_statements_summary_by_digest WRITE; +UNLOCK TABLES; + === modified file 'mysql-test/suite/sys_vars/r/all_vars.result' --- a/mysql-test/suite/sys_vars/r/all_vars.result 2011-05-31 09:30:59 +0000 +++ b/mysql-test/suite/sys_vars/r/all_vars.result 2011-06-13 11:54:30 +0000 @@ -14,6 +14,7 @@ left join t1 on variable_name=test_name There should be *no* variables listed below: INNODB_STATS_TRANSIENT_SAMPLE_PAGES INNODB_ROLLBACK_SEGMENTS +INNODB_LARGE_PREFIX INNODB_STATS_PERSISTENT_SAMPLE_PAGES RELAY_LOG_BASENAME LOG_BIN_BASENAME @@ -27,9 +28,9 @@ INNODB_SYNC_ARRAY_SIZE INNODB_MONITOR_DISABLE INNODB_FILE_FORMAT_MAX INNODB_MONITOR_ENABLE -INNODB_LARGE_PREFIX INNODB_STATS_TRANSIENT_SAMPLE_PAGES INNODB_ROLLBACK_SEGMENTS +INNODB_LARGE_PREFIX INNODB_STATS_PERSISTENT_SAMPLE_PAGES RELAY_LOG_BASENAME LOG_BIN_BASENAME @@ -43,6 +44,5 @@ INNODB_SYNC_ARRAY_SIZE INNODB_MONITOR_DISABLE INNODB_FILE_FORMAT_MAX INNODB_MONITOR_ENABLE -INNODB_LARGE_PREFIX drop table t1; drop table t2; === added file 'mysql-test/suite/sys_vars/r/pfs_digests_size.result' --- a/mysql-test/suite/sys_vars/r/pfs_digests_size.result 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/sys_vars/r/pfs_digests_size.result 2011-06-13 11:54:30 +0000 @@ -0,0 +1,23 @@ +select @@global.performance_schema_digests_size; +@@global.performance_schema_digests_size +200 +select @@session.performance_schema_digests_size; +ERROR HY000: Variable 'performance_schema_digests_size' is a GLOBAL variable +show global variables like 'performance_schema_digests_size'; +Variable_name Value +performance_schema_digests_size 200 +show session variables like 'performance_schema_digests_size'; +Variable_name Value +performance_schema_digests_size 200 +select * from information_schema.global_variables +where variable_name='performance_schema_digests_size'; +VARIABLE_NAME VARIABLE_VALUE +PERFORMANCE_SCHEMA_DIGESTS_SIZE 200 +select * from information_schema.session_variables +where variable_name='performance_schema_digests_size'; +VARIABLE_NAME VARIABLE_VALUE +PERFORMANCE_SCHEMA_DIGESTS_SIZE 200 +set global performance_schema_digests_size=1; +ERROR HY000: Variable 'performance_schema_digests_size' is a read only variable +set session performance_schema_digests_size=1; +ERROR HY000: Variable 'performance_schema_digests_size' is a read only variable === added file 'mysql-test/suite/sys_vars/t/pfs_digests_size-master_basic.opt' --- a/mysql-test/suite/sys_vars/t/pfs_digests_size-master_basic.opt 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/sys_vars/t/pfs_digests_size-master_basic.opt 2011-06-13 11:54:30 +0000 @@ -0,0 +1,2 @@ +--loose-enable-performance-schema +--loose-performance-schema-digests-size=200 === added file 'mysql-test/suite/sys_vars/t/pfs_digests_size_basic.test' --- a/mysql-test/suite/sys_vars/t/pfs_digests_size_basic.test 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/sys_vars/t/pfs_digests_size_basic.test 2011-06-13 11:54:30 +0000 @@ -0,0 +1,47 @@ +# Copyright (C) 2010 Sun Microsystems, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +--source include/not_embedded.inc +--source include/have_perfschema.inc + +# +# Only global +# + +select @@global.performance_schema_digests_size; + +--error ER_INCORRECT_GLOBAL_LOCAL_VAR +select @@session.performance_schema_digests_size; + +show global variables like 'performance_schema_digests_size'; + +show session variables like 'performance_schema_digests_size'; + +select * from information_schema.global_variables + where variable_name='performance_schema_digests_size'; + +select * from information_schema.session_variables + where variable_name='performance_schema_digests_size'; + +# +# Read-only +# + +--error ER_INCORRECT_GLOBAL_LOCAL_VAR +set global performance_schema_digests_size=1; + +--error ER_INCORRECT_GLOBAL_LOCAL_VAR +set session performance_schema_digests_size=1; + === modified file 'sql/sys_vars.cc' --- a/sql/sys_vars.cc 2011-06-07 12:08:35 +0000 +++ b/sql/sys_vars.cc 2011-06-13 11:54:30 +0000 @@ -274,7 +274,7 @@ static Sys_var_ulong Sys_pfs_events_stat static Sys_var_ulong Sys_pfs_digest_size( "performance_schema_digests_size", - "TBD.", + "Size of the statement digest.", READ_ONLY GLOBAL_VAR(pfs_param.m_digest_sizing), CMD_LINE(REQUIRED_ARG), VALID_RANGE(0, 200), DEFAULT(PFS_DIGEST_SIZE), === modified file 'storage/perfschema/table_esms_by_digest.cc' --- a/storage/perfschema/table_esms_by_digest.cc 2011-05-16 11:20:58 +0000 +++ b/storage/perfschema/table_esms_by_digest.cc 2011-06-13 11:54:30 +0000 @@ -267,8 +267,11 @@ int table_esms_by_digest if (unlikely(! m_row_exists)) return HA_ERR_RECORD_DELETED; - /* Set the null bits */ - DBUG_ASSERT(table->s->null_bytes == 0); + /* + Set the null bits. It indicates how many fields could be null + in the table. + */ + DBUG_ASSERT(table->s->null_bytes == 1); for (; (f= *fields) ; fields++) { --===============1975636500== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/mayank.prasad@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: mayank.prasad@stripped\ # u59wkavvbe5u43so # target_branch: file:///home/mayank/mysql-tree/my_WL/5767/ # testament_sha1: 87ab49dd9baedbad39188bf9c65c58a3b7cea912 # timestamp: 2011-06-13 17:27:58 +0530 # base_revision_id: mayank.prasad@stripped\ # ovgddp31mw3cfcxb # # Begin bundle IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWeAsypEACM5fgCgwWvf//3// 3/C////wYBLfW969b24auwAAAAAF2AAAAAAAOgAAAAAAAMUppP0keobU0D0HqnkynqZqaPKAA0aa ADQAaSRp6nqekAA0aAGgAaaAAAAADTSqftT0ianqPSA9TNIAAeoZAAAAAAaaKaYiRk09T1Ho1NGQ A00AAAAAAHDTTBDIaaZGTCAaaAMJo0yYAEDQKkkBAAmTQJpMEwjRMmgp+k9Eh+k09U9NJ5qXz8va r70e5969cufavXLllxe+ay5cp96lg0SjGkjZRyIUXWajVmdGpFt0DpViOtfDwMHq+UkgSjxBqjKS hGErkhY7L+CC8CsEJ+pihJWI44HIKLOweAYEJ+6sNihVQjyqqkKHyFThMDS94YhBtMMOhIcAUMCB S4CXCASiASMS8+chQi1RWrUNLCS84grKMsvfPpyumoEGiTWrPWzGW8iqYOJZhaDkvCZMVeiwSInn UNSH+JNG+hjgr60ehNyUqlKqpSkHvqeiIIOjvqtWXTJmEOLGq7ETIGksW77OJMSJ4zMM2Cwi9xEg BWDLOowmWhVDXllLkl2m866QJ7LVdWiLpIxPWjOgzKc8tsCNBxaxtxOa/ne+6YQ3A0Qyh8QRVBBg iICop42EkquEK0+M6yHL9S2qgUu3J7YlAsCKIVJUUv/guuv+dj30nyk635/IwpVKXZv8tF+Pztco w/wU0yy5yvjIwZ7T1tqP2aGxn77psd2eaL337pZa07Snr76rUdrK/ORxcHhPDHlUptks+3Mizd05 zW12ls/+suyTG2cnR+dxnyqu7Ph1Uad+HBSU3xisPYp3rlYEUQEJGkUvMqFdJ/YBFQZr6OkzNdhq 4oP7tX49y9JH7FVFVJPRi5pNc/2XLFKLoWhoCJyEosSSCJFVvLF1VyBgtyq1E6aAKzSNoXhxYgx8 AqGyCANYEYwIEgps1F27ZwCEC0GYKzar2DauUlq0UfbC5pXKXCYvd86+Dx1X3suuxm7dhzuMLSPS 791lz3sO19n/dry/BSbtpcYeYm5nZzam82NTpq/Cr7s1rvuYoNC7kkbGfRyqu+STS0TO17cpc0L2 dcfw8pH1zS0YWRcpstG99nj0ujQk50XeqxaoUqPDrWq+EszwxSfhPBhFXHFQ1I04Yei165gWVEip dNV0sv0WXfa17Wl5rmLHBZuULPf+67BjYhgyWbV/Bheoo0pu1Y3sl5TQWctCwwMrIolpe3v8ubB/ lwYtLkpraW1rtrXt7vep4MeGd6Ogvpv1Wmyssr6ZSL/m2tGDsU0q7dDFdPzwuddjU6tSaamdEjBh Zq+hz1vwwwq6JFkZ69i+a2AnLdp1aXZwYXRyOZqU0+DSv67Ou++2zTrx7MNrsYuXb25g1t5VHb89 7oTR2t6yY5cVVdyerrs0O11hOWfwWl3aWlbNTxXsujq7LOZwcnJn7dVzx5OvB3zNU6o2OTB/q55O +bFlMNePc9azcYtid9cuWHG/U3b+C6r//r6qbpPMl9BMZ6fKya3Y2ui9v22aaKvMm/SYvBlsaJr8 dJ6dXJbm24KTQc2pcvY3PDC0k9re+lxcGbJT/Tc3Oxg5L3Pd0aWlexzx3PPRNE73x1VWLQ3djm0U JhTdZsb8bhmoS2wzL1L3mYdjJ173Yw2qzNTv9OtemxW016PC50cF+xss7Xhoub1qc+h1XNLbVU3u fTH1sPodwnFhVoztatt873dib8Hc2k8VTC7v72TvdZMlJcJscBL0vVSkpSsaeGti7Xc72fxq+RuU 4Ot+52rzaxjBgy1OPHxbdbU9nqeTYpvcezZnqOlym4qd+CuK3IxorktKVzavb1tvaBNFzJdcxTOm hdt+fSzLNVTzbr91+0TxdXRrN7iva3HYyb31rxLYVztora5213VTSs3sd5iX43A5+C12LGeFWZMJ sY6FzQ8dO14tVy7pktv2ambZvsxd2zTJUimtofAudG2mOpZrcHZt1ObYy5rnwxaMteq29v5VjquW qcmOVxhTJTNTeoxbGB7ePFwc9uzt8O51aN+tu2vm1auxmzXNevi0N7iw16HY2rXanHSTaYODUyYO bfx5tT3PJe1Mew35Xb+OLFZdhsXqMFr8HivsXYNjtvXHmsuKznBqZtPDHs5NS7Jr08n6tTmWYM/B 8Xav7M9XPnatPBVuOs3tDouSlTs0ta6nrYYq4O9u0L+3e09jJg17Ntzm6N/axbGlgu3ti5g0blyb HETpvm6hu42Kprus2VdTZwrHhaTZUjCwhcsiCKBHiXEnRfqW3C6ZcVuyIZ1BKxMl/tmmjIJpZYgX 6N2G2iCnVnsuCKQQSCM9UKkrAIGYFCTVUKoovKPsSlKWVSZb/3I+bbJrwP4TS1P52iS5y/xjX8Uj /o6Q/V+o9/6qn5T9H6LGmf2H/+tmxon5yjVP12U+huP6NZ5HWVUpKpUfqfmiZTLb/3hO0xk59klO W5hNDImE2sC+Dt1WGlvXZqYyZm1ZoUzkxUX/8OD/RT/Df2m+nbJxTn1XP9KL5ScGTJTnJYwXE7Wc qSzXzlOUnBFL3NF41lyka90nBLmTY1F5eowWbnRq7Fb5pNtxrOCUYF2EqUucu5fNabrTItjJuTwu R2mmTkxbGi5m3DS7+HGnYzmo3EuUzy4YN8nIlJKUcrzsMJpbzgXNLaqUqYRp3TuWamDDJcLmDsNY j8ssGJTJUtDGwszk0My5qZFsGLBslr2uQyc36mLSk7KlTlLOwdbndeNBwb25bsYXrupUcG6KlRKv GHHBqLprXxinazlmEhmNV18xkKUtYWQ0U3qM2bdcjPQZUzuLlxNuMs5KGWqVCyjoI1MZKObR/qnu o0vNksmts3OK7bIzRk27qrQyWMV2dklsVZ4yYKUpRSy9nLTq78OpiI7TsZulay6ovc21TCXL0Wd9 MRubzk9idg1Lzj075WA+Q1ekalw4vDS8S6TW7HokvXtcnB3ymDvaHetM2S9YoslylyUXLIzKFzOT /LSuWcmxi4tZRpappGD6Hxr85I/tCn5Ug/FJcUKj5sJglT6qXVKlUlJKUmSllMP62QwKSL0XpFIq FCkJ9y9839WC7QrG00DL0GpaJP2v6bEj+j+T8X8n8n8X+zQ/m2sH9GbQyNiRT6//e5+L/mdslSu2 oslu2wvaXb+m9Bj4TC0klv92ruw6MmOVonXbuP0GnCVDnJv+//evL8neZzoGvR3RIvqTL6IF13Zi P7t07ZItNcUS6jGE0b2gGqy89Nd5qiTC65R3MJ3mj+H9hMXtqST9mv1Oi1Njy/q9L1Hsdz1L1657 WrN2LlzBVmr9Efiamx+bm+E9L1e/zE7WG9lxIfoZXe5cttkHY9p5CYze+DuswXrne7G1Tt9zwfB8 e3l5MmDBT2KO14Orxk6uNztf3NPte9re8y6x9ChHo06i/ud71Hjnj5ETTakFxvQcJOtIxx1xOhoa LvprTJVqXKFmtdVy/puex6ddzU8mdzzZKavIwdjJv7+rcTXi8m4mhhoaIjVJJtaXmYsnn29jevfU eBwYNLq3ndJr3W5NTF3GPe4SPPP1BRUKlQo8S0klaLu98uiqbzq2Vp+p7V/0ev6MO5g+JSKLvlll GG9nfC5FsDB0LrvXfnLj36L46Wvx0nl7NEjVr13WtdFrUgunFZFOZ6Geen3vY7fX4MV/B8Nmi1lq e2tK57Gv6VzOhNDc9yz6XFo0Pc6OZ20j0I32WKjE21HdS10wiaIlJ4qaBGh9flraXVtY5k+OnO2n b6hm1e92NjoubD9/V5vfnlWXoVhLAHoBfwmGe45SOYNZ8A6AGyCCXDCIiCeWYMvTDQ9L9s1ScTce iRmSWhLEykwbNLAdk3E94T4M8dk+So13sfYYqOG1o/bz5w3aR9MGmilQlLrSDOJej2U5az9Glw9Y fzkpxNMTm83uZb4jf6dVJhoPi9T0r3n7nrfJhMua9RT6L2b4OHwx+CzHS5aGhS9esa1ZrLs2mRrb W1wkfRs/VH2osjU1ztuHWJFPncWiZwvnbOOOq5lO1MXRJghGiP+Z4OrY4uzXOvoePf9y+3pSL9n3 LB2X+95mRE0Ex+pXaadcmi+l1O17dTufHyiM11YvCSNM0N37i/Z+Gv4RGK18mfbq73DKJI04imKS ejsrNGD++c/4xPe8y8+6JXSjPSXLn6e7yv7Y20UqRRT3uGceE5a++Jfc3rTaPsz4z9uPl/XafbKh Gz7Xi4uzUxxeTH1/K1UC3ofczE+ob/VE+L5vsYNnUpR15WnQ4ww/B4Ly7YmK0/n6DS0pl4ROmxFp zQWRtOC8uRQxJQo8WyS6Z+SMbr/W1319FXyvij75Oq/ydW1O5p8mmJ2O3hzNTyZFj7ClQjYtoayJ ziR3ydKhLmN8l7zT5v4yKRb6cmkNVok4jCmamrb5plJthKw+3Jp0SNOG2z3rW84fWeLdxcaquTTu 3023aqukoqzQsSyouUs8G9FF5/8ZJIsUKiZyvpZ5zJel2NjThJvX6lSScmX+9Nm5oyz0Glb6V0k2 i9aVSSTXc0P1wl/rd3RxRUR9rp5wVtv1SfJbBfJPNEa00VJH8cOWhZkPhX26P7XIx7d41v3oKib7 iJ7bp3tcn5abpPdKr7fz3ZfcsOhd2FR2JuvnvNvL30iifc8zKRv1fZUyQs7vskUXHw97L67vGlUq vNqcPDbdqkk1Tfe1Z38lz+Kzv1NrotDZ9b6ZNET3VJbhN7kvXzAVShxXINqol0+E/Z6fv2SSczSy Z0i3Yeb13SRuibnXwykZoTEivQx9XpfR8ujcRPHR2vx+evnORPVJuu6o28NSKKNhaE9j6l8eucqW jjaY3Xcllz6957K2YVOL5NEOUMUI7deoHr5Ppyo5kWUJsd0y5refiTotJ5XvI+LzWyqqqPf7ct1I 2o45ZG115GFKJTGZ1ElKKqPv6J5UnZDvE15G2cZbqMYa6kk6SU3KkNg0FQmN+HCJkykG1utE0NEJ j4NmjKJ7/SNetYvdaXVrN5S+n282eJfMmuLvGpJrGxelXO5TXSPvefYua6NQ0skaV78iLhsc5P31 x8t7DNIarGGsu03XRJh4Vo7r7cW1YitFvpUktVe3Hh08B4L+tRtcHNqG/JUS6bbLUbNVpJLkkl29 6ptvphaq+k7xOz0CfU+M5XPVuT1NX7Nu1tlrxF97lQ6vYYdV5gPqt7LPr9zweTKSiij94mieGG+V CY3limo9z6l8S8S+LPW+R+DFrHrmnBxW5VKqqUq/v8F37a5vQJgu3Orerw81zyZO5/J0eJex76iO 58l5o8+Hj7b+nSzWv7q8kqEzQe/eC53PS+Fnfr8tQrTm9yymnadIJ08Hd2O5/4LuSKcKEhwFmVIg --===============1975636500==--