Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1ZcDSv-0006rZ-7X for pgsql-hackers@arkaria.postgresql.org; Wed, 16 Sep 2015 14:13:41 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84) (envelope-from ) id 1ZcDSu-00053u-Pa for pgsql-hackers@arkaria.postgresql.org; Wed, 16 Sep 2015 14:13:40 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84) (envelope-from ) id 1ZcDSt-00053m-SU for pgsql-hackers@postgresql.org; Wed, 16 Sep 2015 14:13:40 +0000 Received: from mx1.redhat.com ([209.132.183.28]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84) (envelope-from ) id 1ZcDSo-0005yb-DV for pgsql-hackers@postgresql.org; Wed, 16 Sep 2015 14:13:39 +0000 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (Postfix) with ESMTPS id D5C9A5369 for ; Wed, 16 Sep 2015 14:13:30 +0000 (UTC) Received: from localhost.localdomain (vpn-53-52.rdu2.redhat.com [10.10.53.52]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id t8GEDTnu007967 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Wed, 16 Sep 2015 10:13:30 -0400 Subject: Re: Additional LWLOCK_STATS statistics To: "pgsql-hackers@postgresql.org" References: <55F82AE1.3010407@redhat.com> <55F871BA.4060404@redhat.com> <55F876CA.8020702@redhat.com> From: Jesper Pedersen Organization: JBoss, by Red Hat Message-ID: <55F97909.3010101@redhat.com> Date: Wed, 16 Sep 2015 10:13:29 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.1.0 MIME-Version: 1.0 In-Reply-To: <55F876CA.8020702@redhat.com> Content-Type: multipart/mixed; boundary="------------080700060902090205020506" X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Pg-Spam-Score: -6.9 (------) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgsql-hackers Precedence: bulk Sender: pgsql-hackers-owner@postgresql.org This is a multi-part message in MIME format. --------------080700060902090205020506 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 09/15/2015 03:51 PM, Jesper Pedersen wrote: >> It >> would be nice to get a better sense of how *long* we block on various >> locks. It's hard to tell whether some other lock might be have fewer >> blocking events but for a much longer average duration. >> > I did a run with the attached patch, recording the time from LWLockQueueSelf() until the lock is required. Doing block_time / block_count basically only shows "main 0" -- its called "unassigned:0"; it also shows up in the max exclusive report. Where it is coming from is another question, since it shouldn't be in use. Due to the overhead of gettimeofday() I think that _v1 is better to consider. Best regards, Jesper --------------080700060902090205020506 Content-Type: text/x-patch; name="lwstats_v2.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="lwstats_v2.patch" *** /tmp/K1hW5V_lwlock.c 2015-09-16 09:53:26.682803203 -0400 --- src/backend/storage/lmgr/lwlock.c 2015-09-16 08:59:11.232712749 -0400 *************** *** 92,97 **** --- 92,98 ---- #include "utils/memutils.h" #ifdef LWLOCK_STATS + #include #include "utils/hsearch.h" #endif *************** *** 163,176 **** --- 164,190 ---- { lwlock_stats_key key; int sh_acquire_count; + int sh_acquire_max; int ex_acquire_count; + int ex_acquire_max; int block_count; + double block_time; + double timestamp; int dequeue_self_count; int spin_delay_count; + int max_waiters; } lwlock_stats; static HTAB *lwlock_stats_htab; static lwlock_stats lwlock_stats_dummy; + + static double + GetTimeInMillis() + { + struct timeval t; + gettimeofday(&t, NULL); + return (t.tv_sec + (t.tv_usec / 1000000.0)) * 1000.0; + } #endif #ifdef LOCK_DEBUG *************** *** 297,308 **** while ((lwstats = (lwlock_stats *) hash_seq_search(&scan)) != NULL) { ! fprintf(stderr, ! "PID %d lwlock %s %d: shacq %u exacq %u blk %u spindelay %u dequeue self %u\n", ! MyProcPid, LWLockTrancheArray[lwstats->key.tranche]->name, ! lwstats->key.instance, lwstats->sh_acquire_count, ! lwstats->ex_acquire_count, lwstats->block_count, ! lwstats->spin_delay_count, lwstats->dequeue_self_count); } LWLockRelease(&MainLWLockArray[0].lock); --- 311,332 ---- while ((lwstats = (lwlock_stats *) hash_seq_search(&scan)) != NULL) { ! if (lwstats->key.tranche == 0 && lwstats->key.instance < NUM_INDIVIDUAL_LWLOCKS) ! fprintf(stderr, ! "PID %d lwlock %s: shacq %u shmax %u exacq %u exmax %u blk %u blktime %u spindelay %u dequeue self %u maxw %u\n", ! MyProcPid, MainLWLockNames[lwstats->key.instance], ! lwstats->sh_acquire_count, lwstats->sh_acquire_max, ! lwstats->ex_acquire_count, lwstats->ex_acquire_max, ! lwstats->block_count, (unsigned int)lwstats->block_time, lwstats->spin_delay_count, lwstats->dequeue_self_count, ! lwstats->max_waiters); ! else ! fprintf(stderr, ! "PID %d lwlock %s %d: shacq %u shmax %u exacq %u exmax %u blk %u blktime %u spindelay %u dequeue self %u maxw %u\n", ! MyProcPid, LWLockTrancheArray[lwstats->key.tranche]->name, ! lwstats->key.instance, lwstats->sh_acquire_count, lwstats->sh_acquire_max, ! lwstats->ex_acquire_count, lwstats->ex_acquire_max, ! lwstats->block_count, (unsigned int)lwstats->block_time, lwstats->spin_delay_count, lwstats->dequeue_self_count, ! lwstats->max_waiters); } LWLockRelease(&MainLWLockArray[0].lock); *************** *** 330,339 **** --- 354,368 ---- if (!found) { lwstats->sh_acquire_count = 0; + lwstats->sh_acquire_max = 0; lwstats->ex_acquire_count = 0; + lwstats->ex_acquire_max = 0; lwstats->block_count = 0; + lwstats->block_time = 0.0; + lwstats->timestamp = 0.0; lwstats->dequeue_self_count = 0; lwstats->spin_delay_count = 0; + lwstats->max_waiters = 0; } return lwstats; } *************** *** 774,779 **** --- 803,811 ---- LWLockQueueSelf(LWLock *lock, LWLockMode mode) { #ifdef LWLOCK_STATS + bool include; + int counter, size; + dlist_iter iter; lwlock_stats *lwstats; lwstats = get_lwlock_stats_entry(lock); *************** *** 791,797 **** --- 823,870 ---- elog(PANIC, "queueing for lock while waiting on another one"); #ifdef LWLOCK_STATS + lwstats->timestamp = GetTimeInMillis(); lwstats->spin_delay_count += SpinLockAcquire(&lock->mutex); + + /* + * We scan the list of waiters from the back in order to find + * out how many of the same lock type are waiting for a lock. + * Similar types have the potential to be groupped together. + * + * We also count the number of waiters, including ourself. + */ + include = true; + size = 1; + counter = 1; + + dlist_reverse_foreach(iter, &lock->waiters) + { + if (include) + { + PGPROC *waiter = dlist_container(PGPROC, lwWaitLink, iter.cur); + + if (waiter->lwWaitMode == mode) + counter += 1; + else + include = false; + } + + size += 1; + } + + if (mode == LW_EXCLUSIVE || mode == LW_WAIT_UNTIL_FREE) + { + if (counter > lwstats->ex_acquire_max) + lwstats->ex_acquire_max = counter; + } + else if (mode == LW_SHARED) + { + if (counter > lwstats->sh_acquire_max) + lwstats->sh_acquire_max = counter; + } + + if (size > lwstats->max_waiters) + lwstats->max_waiters = size; #else SpinLockAcquire(&lock->mutex); #endif *************** *** 943,951 **** --- 1016,1032 ---- #ifdef LWLOCK_STATS /* Count lock acquisition attempts */ if (mode == LW_EXCLUSIVE) + { lwstats->ex_acquire_count++; + if (lwstats->ex_acquire_max == 0) + lwstats->ex_acquire_max = 1; + } else + { lwstats->sh_acquire_count++; + if (lwstats->sh_acquire_max == 0) + lwstats->sh_acquire_max = 1; + } #endif /* LWLOCK_STATS */ /* *************** *** 1021,1026 **** --- 1102,1110 ---- LOG_LWDEBUG("LWLockAcquire", lock, "acquired, undoing queue"); LWLockDequeueSelf(lock); + #ifdef LWLOCK_STATS + lwstats->block_time += (GetTimeInMillis() - lwstats->timestamp); + #endif break; } *************** *** 1068,1073 **** --- 1152,1160 ---- LOG_LWDEBUG("LWLockAcquire", lock, "awakened"); + #ifdef LWLOCK_STATS + lwstats->block_time += (GetTimeInMillis() - lwstats->timestamp); + #endif /* Now loop back and try to acquire lock again. */ result = false; } --------------080700060902090205020506 Content-Type: image/svg+xml; name="lwstats_blocktime.svg" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="lwstats_blocktime.svg" PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZ UEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRw Oi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQi Pgo8c3ZnIHZlcnNpb249IjEuMSIgd2lkdGg9IjEyMDAiIGhlaWdodD0iMTM3 OCIgb25sb2FkPSJpbml0KGV2dCkiIHZpZXdCb3g9IjAgMCAxMjAwIDEzNzgi IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxp bms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8IS0tIEZsYW1l IGdyYXBoIHN0YWNrIHZpc3VhbGl6YXRpb24uIFNlZSBodHRwczovL2dpdGh1 Yi5jb20vYnJlbmRhbmdyZWdnL0ZsYW1lR3JhcGggZm9yIGxhdGVzdCB2ZXJz aW9uLCBhbmQgaHR0cDovL3d3dy5icmVuZGFuZ3JlZ2cuY29tL2ZsYW1lZ3Jh cGhzLmh0bWwgZm9yIGV4YW1wbGVzLiAtLT4KPGRlZnMgPgoJPGxpbmVhckdy YWRpZW50IGlkPSJiYWNrZ3JvdW5kIiB5MT0iMCIgeTI9IjEiIHgxPSIwIiB4 Mj0iMCIgPgoJCTxzdG9wIHN0b3AtY29sb3I9IiNlZWVlZWUiIG9mZnNldD0i NSUiIC8+CgkJPHN0b3Agc3RvcC1jb2xvcj0iI2VlZWViMCIgb2Zmc2V0PSI5 NSUiIC8+Cgk8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+CjxzdHlsZSB0eXBl PSJ0ZXh0L2NzcyI+CgkuZnVuY19nOmhvdmVyIHsgc3Ryb2tlOmJsYWNrOyBz dHJva2Utd2lkdGg6MC41OyBjdXJzb3I6cG9pbnRlcjsgfQo8L3N0eWxlPgo8 c2NyaXB0IHR5cGU9InRleHQvZWNtYXNjcmlwdCI+CjwhW0NEQVRBWwoJdmFy IGRldGFpbHMsIHNlYXJjaGJ0biwgbWF0Y2hlZHR4dCwgc3ZnOwoJZnVuY3Rp b24gaW5pdChldnQpIHsgCgkJZGV0YWlscyA9IGRvY3VtZW50LmdldEVsZW1l bnRCeUlkKCJkZXRhaWxzIikuZmlyc3RDaGlsZDsgCgkJc2VhcmNoYnRuID0g ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlYXJjaCIpOwoJCW1hdGNoZWR0 eHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWF0Y2hlZCIpOwoJCXN2 ZyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzdmciKVswXTsK CQlzZWFyY2hpbmcgPSAwOwoJfQoKCS8vIG1vdXNlLW92ZXIgZm9yIGluZm8K CWZ1bmN0aW9uIHMobm9kZSkgewkJLy8gc2hvdwoJCWluZm8gPSBnX3RvX3Rl eHQobm9kZSk7CgkJZGV0YWlscy5ub2RlVmFsdWUgPSAiRnVuY3Rpb246ICIg KyBpbmZvOwoJfQoJZnVuY3Rpb24gYygpIHsJCQkvLyBjbGVhcgoJCWRldGFp bHMubm9kZVZhbHVlID0gJyAnOwoJfQoKCS8vIGN0cmwtRiBmb3Igc2VhcmNo Cgl3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24g KGUpIHsKCQlpZiAoZS5rZXlDb2RlID09PSAxMTQgfHwgKGUuY3RybEtleSAm JiBlLmtleUNvZGUgPT09IDcwKSkgewoJCQllLnByZXZlbnREZWZhdWx0KCk7 CgkJCXNlYXJjaF9wcm9tcHQoKTsKCQl9Cgl9KQoKCS8vIGZ1bmN0aW9ucwoJ ZnVuY3Rpb24gZmluZF9jaGlsZChwYXJlbnQsIG5hbWUsIGF0dHIpIHsKCQl2 YXIgY2hpbGRyZW4gPSBwYXJlbnQuY2hpbGROb2RlczsKCQlmb3IgKHZhciBp PTA7IGk8Y2hpbGRyZW4ubGVuZ3RoO2krKykgewoJCQlpZiAoY2hpbGRyZW5b aV0udGFnTmFtZSA9PSBuYW1lKQoJCQkJcmV0dXJuIChhdHRyICE9IHVuZGVm aW5lZCkgPyBjaGlsZHJlbltpXS5hdHRyaWJ1dGVzW2F0dHJdLnZhbHVlIDog Y2hpbGRyZW5baV07CgkJfQoJCXJldHVybjsKCX0KCWZ1bmN0aW9uIG9yaWdf c2F2ZShlLCBhdHRyLCB2YWwpIHsKCQlpZiAoZS5hdHRyaWJ1dGVzWyJfb3Jp Z18iK2F0dHJdICE9IHVuZGVmaW5lZCkgcmV0dXJuOwoJCWlmIChlLmF0dHJp YnV0ZXNbYXR0cl0gPT0gdW5kZWZpbmVkKSByZXR1cm47CgkJaWYgKHZhbCA9 PSB1bmRlZmluZWQpIHZhbCA9IGUuYXR0cmlidXRlc1thdHRyXS52YWx1ZTsK CQllLnNldEF0dHJpYnV0ZSgiX29yaWdfIithdHRyLCB2YWwpOwoJfQoJZnVu Y3Rpb24gb3JpZ19sb2FkKGUsIGF0dHIpIHsKCQlpZiAoZS5hdHRyaWJ1dGVz WyJfb3JpZ18iK2F0dHJdID09IHVuZGVmaW5lZCkgcmV0dXJuOwoJCWUuYXR0 cmlidXRlc1thdHRyXS52YWx1ZSA9IGUuYXR0cmlidXRlc1siX29yaWdfIith dHRyXS52YWx1ZTsKCQllLnJlbW92ZUF0dHJpYnV0ZSgiX29yaWdfIithdHRy KTsKCX0KCWZ1bmN0aW9uIGdfdG9fdGV4dChlKSB7CgkJdmFyIHRleHQgPSBm aW5kX2NoaWxkKGUsICJ0aXRsZSIpLmZpcnN0Q2hpbGQubm9kZVZhbHVlOwoJ CXJldHVybiAodGV4dCkKCX0KCWZ1bmN0aW9uIGdfdG9fZnVuYyhlKSB7CgkJ dmFyIGZ1bmMgPSBnX3RvX3RleHQoZSk7CgkJaWYgKGZ1bmMgIT0gbnVsbCkK CQkJZnVuYyA9IGZ1bmMucmVwbGFjZSgvIC4qLywgIiIpOwoJCXJldHVybiAo ZnVuYyk7Cgl9CglmdW5jdGlvbiB1cGRhdGVfdGV4dChlKSB7CgkJdmFyIHIg PSBmaW5kX2NoaWxkKGUsICJyZWN0Iik7CgkJdmFyIHQgPSBmaW5kX2NoaWxk KGUsICJ0ZXh0Iik7CgkJdmFyIHcgPSBwYXJzZUZsb2F0KHIuYXR0cmlidXRl c1sid2lkdGgiXS52YWx1ZSkgLTM7CgkJdmFyIHR4dCA9IGZpbmRfY2hpbGQo ZSwgInRpdGxlIikudGV4dENvbnRlbnQucmVwbGFjZSgvXChbXihdKlwpLywi Iik7CgkJdC5hdHRyaWJ1dGVzWyJ4Il0udmFsdWUgPSBwYXJzZUZsb2F0KHIu YXR0cmlidXRlc1sieCJdLnZhbHVlKSArMzsKCQkKCQkvLyBTbWFsbGVyIHRo YW4gdGhpcyBzaXplIHdvbid0IGZpdCBhbnl0aGluZwoJCWlmICh3IDwgMiox MiowLjU5KSB7CgkJCXQudGV4dENvbnRlbnQgPSAiIjsKCQkJcmV0dXJuOwoJ CX0KCQkKCQl0LnRleHRDb250ZW50ID0gdHh0OwoJCS8vIEZpdCBpbiBmdWxs IHRleHQgd2lkdGgKCQlpZiAoL14gKiQvLnRlc3QodHh0KSB8fCB0LmdldFN1 YlN0cmluZ0xlbmd0aCgwLCB0eHQubGVuZ3RoKSA8IHcpCgkJCXJldHVybjsK CQkKCQlmb3IgKHZhciB4PXR4dC5sZW5ndGgtMjsgeD4wOyB4LS0pIHsKCQkJ aWYgKHQuZ2V0U3ViU3RyaW5nTGVuZ3RoKDAsIHgrMikgPD0gdykgeyAKCQkJ CXQudGV4dENvbnRlbnQgPSB0eHQuc3Vic3RyaW5nKDAseCkgKyAiLi4iOwoJ CQkJcmV0dXJuOwoJCQl9CgkJfQoJCXQudGV4dENvbnRlbnQgPSAiIjsKCX0K CgkvLyB6b29tCglmdW5jdGlvbiB6b29tX3Jlc2V0KGUpIHsKCQlpZiAoZS5h dHRyaWJ1dGVzICE9IHVuZGVmaW5lZCkgewoJCQlvcmlnX2xvYWQoZSwgIngi KTsKCQkJb3JpZ19sb2FkKGUsICJ3aWR0aCIpOwoJCX0KCQlpZiAoZS5jaGls ZE5vZGVzID09IHVuZGVmaW5lZCkgcmV0dXJuOwoJCWZvcih2YXIgaT0wLCBj PWUuY2hpbGROb2RlczsgaTxjLmxlbmd0aDsgaSsrKSB7CgkJCXpvb21fcmVz ZXQoY1tpXSk7CgkJfQoJfQoJZnVuY3Rpb24gem9vbV9jaGlsZChlLCB4LCBy YXRpbykgewoJCWlmIChlLmF0dHJpYnV0ZXMgIT0gdW5kZWZpbmVkKSB7CgkJ CWlmIChlLmF0dHJpYnV0ZXNbIngiXSAhPSB1bmRlZmluZWQpIHsKCQkJCW9y aWdfc2F2ZShlLCAieCIpOwoJCQkJZS5hdHRyaWJ1dGVzWyJ4Il0udmFsdWUg PSAocGFyc2VGbG9hdChlLmF0dHJpYnV0ZXNbIngiXS52YWx1ZSkgLSB4IC0g MTApICogcmF0aW8gKyAxMDsKCQkJCWlmKGUudGFnTmFtZSA9PSAidGV4dCIp IGUuYXR0cmlidXRlc1sieCJdLnZhbHVlID0gZmluZF9jaGlsZChlLnBhcmVu dE5vZGUsICJyZWN0IiwgIngiKSArIDM7CgkJCX0KCQkJaWYgKGUuYXR0cmli dXRlc1sid2lkdGgiXSAhPSB1bmRlZmluZWQpIHsKCQkJCW9yaWdfc2F2ZShl LCAid2lkdGgiKTsKCQkJCWUuYXR0cmlidXRlc1sid2lkdGgiXS52YWx1ZSA9 IHBhcnNlRmxvYXQoZS5hdHRyaWJ1dGVzWyJ3aWR0aCJdLnZhbHVlKSAqIHJh dGlvOwoJCQl9CgkJfQoJCQoJCWlmIChlLmNoaWxkTm9kZXMgPT0gdW5kZWZp bmVkKSByZXR1cm47CgkJZm9yKHZhciBpPTAsIGM9ZS5jaGlsZE5vZGVzOyBp PGMubGVuZ3RoOyBpKyspIHsKCQkJem9vbV9jaGlsZChjW2ldLCB4LTEwLCBy YXRpbyk7CgkJfQoJfQoJZnVuY3Rpb24gem9vbV9wYXJlbnQoZSkgewoJCWlm IChlLmF0dHJpYnV0ZXMpIHsKCQkJaWYgKGUuYXR0cmlidXRlc1sieCJdICE9 IHVuZGVmaW5lZCkgewoJCQkJb3JpZ19zYXZlKGUsICJ4Iik7CgkJCQllLmF0 dHJpYnV0ZXNbIngiXS52YWx1ZSA9IDEwOwoJCQl9CgkJCWlmIChlLmF0dHJp YnV0ZXNbIndpZHRoIl0gIT0gdW5kZWZpbmVkKSB7CgkJCQlvcmlnX3NhdmUo ZSwgIndpZHRoIik7CgkJCQllLmF0dHJpYnV0ZXNbIndpZHRoIl0udmFsdWUg PSBwYXJzZUludChzdmcud2lkdGguYmFzZVZhbC52YWx1ZSkgLSAoMTAqMik7 CgkJCX0KCQl9CgkJaWYgKGUuY2hpbGROb2RlcyA9PSB1bmRlZmluZWQpIHJl dHVybjsKCQlmb3IodmFyIGk9MCwgYz1lLmNoaWxkTm9kZXM7IGk8Yy5sZW5n dGg7IGkrKykgewoJCQl6b29tX3BhcmVudChjW2ldKTsKCQl9Cgl9CglmdW5j dGlvbiB6b29tKG5vZGUpIHsgCgkJdmFyIGF0dHIgPSBmaW5kX2NoaWxkKG5v ZGUsICJyZWN0IikuYXR0cmlidXRlczsKCQl2YXIgd2lkdGggPSBwYXJzZUZs b2F0KGF0dHJbIndpZHRoIl0udmFsdWUpOwoJCXZhciB4bWluID0gcGFyc2VG bG9hdChhdHRyWyJ4Il0udmFsdWUpOwoJCXZhciB4bWF4ID0gcGFyc2VGbG9h dCh4bWluICsgd2lkdGgpOwoJCXZhciB5bWluID0gcGFyc2VGbG9hdChhdHRy WyJ5Il0udmFsdWUpOwoJCXZhciByYXRpbyA9IChzdmcud2lkdGguYmFzZVZh bC52YWx1ZSAtIDIqMTApIC8gd2lkdGg7CgkJCgkJLy8gWFhYOiBXb3JrYXJv dW5kIGZvciBKYXZhU2NyaXB0IGZsb2F0IGlzc3VlcyAoZml4IG1lKQoJCXZh ciBmdWRnZSA9IDAuMDAwMTsKCQkKCQl2YXIgdW56b29tYnRuID0gZG9jdW1l bnQuZ2V0RWxlbWVudEJ5SWQoInVuem9vbSIpOwoJCXVuem9vbWJ0bi5zdHls ZVsib3BhY2l0eSJdID0gIjEuMCI7CgkJCgkJdmFyIGVsID0gZG9jdW1lbnQu Z2V0RWxlbWVudHNCeVRhZ05hbWUoImciKTsKCQlmb3IodmFyIGk9MDtpPGVs Lmxlbmd0aDtpKyspewoJCQl2YXIgZSA9IGVsW2ldOwoJCQl2YXIgYSA9IGZp bmRfY2hpbGQoZSwgInJlY3QiKS5hdHRyaWJ1dGVzOwoJCQl2YXIgZXggPSBw YXJzZUZsb2F0KGFbIngiXS52YWx1ZSk7CgkJCXZhciBldyA9IHBhcnNlRmxv YXQoYVsid2lkdGgiXS52YWx1ZSk7CgkJCS8vIElzIGl0IGFuIGFuY2VzdG9y CgkJCWlmICgwID09IDApIHsKCQkJCXZhciB1cHN0YWNrID0gcGFyc2VGbG9h dChhWyJ5Il0udmFsdWUpID4geW1pbjsKCQkJfSBlbHNlIHsKCQkJCXZhciB1 cHN0YWNrID0gcGFyc2VGbG9hdChhWyJ5Il0udmFsdWUpIDwgeW1pbjsKCQkJ fQoJCQlpZiAodXBzdGFjaykgewoJCQkJLy8gRGlyZWN0IGFuY2VzdG9yCgkJ CQlpZiAoZXggPD0geG1pbiAmJiAoZXgrZXcrZnVkZ2UpID49IHhtYXgpIHsK CQkJCQllLnN0eWxlWyJvcGFjaXR5Il0gPSAiMC41IjsKCQkJCQl6b29tX3Bh cmVudChlKTsKCQkJCQllLm9uY2xpY2sgPSBmdW5jdGlvbihlKXt1bnpvb20o KTsgem9vbSh0aGlzKTt9OwoJCQkJCXVwZGF0ZV90ZXh0KGUpOwoJCQkJfQoJ CQkJLy8gbm90IGluIGN1cnJlbnQgcGF0aAoJCQkJZWxzZQoJCQkJCWUuc3R5 bGVbImRpc3BsYXkiXSA9ICJub25lIjsKCQkJfQoJCQkvLyBDaGlsZHJlbiBt YXliZQoJCQllbHNlIHsKCQkJCS8vIG5vIGNvbW1vbiBwYXRoCgkJCQlpZiAo ZXggPCB4bWluIHx8IGV4ICsgZnVkZ2UgPj0geG1heCkgewoJCQkJCWUuc3R5 bGVbImRpc3BsYXkiXSA9ICJub25lIjsKCQkJCX0KCQkJCWVsc2UgewoJCQkJ CXpvb21fY2hpbGQoZSwgeG1pbiwgcmF0aW8pOwoJCQkJCWUub25jbGljayA9 IGZ1bmN0aW9uKGUpe3pvb20odGhpcyk7fTsKCQkJCQl1cGRhdGVfdGV4dChl KTsKCQkJCX0KCQkJfQoJCX0KCX0KCWZ1bmN0aW9uIHVuem9vbSgpIHsKCQl2 YXIgdW56b29tYnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVuem9v bSIpOwoJCXVuem9vbWJ0bi5zdHlsZVsib3BhY2l0eSJdID0gIjAuMCI7CgkJ CgkJdmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImci KTsKCQlmb3IoaT0wO2k8ZWwubGVuZ3RoO2krKykgewoJCQllbFtpXS5zdHls ZVsiZGlzcGxheSJdID0gImJsb2NrIjsKCQkJZWxbaV0uc3R5bGVbIm9wYWNp dHkiXSA9ICIxIjsKCQkJem9vbV9yZXNldChlbFtpXSk7CgkJCXVwZGF0ZV90 ZXh0KGVsW2ldKTsKCQl9Cgl9CQoKCS8vIHNlYXJjaAoJZnVuY3Rpb24gcmVz ZXRfc2VhcmNoKCkgewoJCXZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRz QnlUYWdOYW1lKCJyZWN0Iik7CgkJZm9yICh2YXIgaT0wOyBpIDwgZWwubGVu Z3RoOyBpKyspIHsKCQkJb3JpZ19sb2FkKGVsW2ldLCAiZmlsbCIpCgkJfQoJ fQoJZnVuY3Rpb24gc2VhcmNoX3Byb21wdCgpIHsKCQlpZiAoIXNlYXJjaGlu ZykgewoJCQl2YXIgdGVybSA9IHByb21wdCgiRW50ZXIgYSBzZWFyY2ggdGVy bSAocmVnZXhwICIgKwoJCQkgICAgImFsbG93ZWQsIGVnOiBeZXh0NF8pIiwg IiIpOwoJCQlpZiAodGVybSAhPSBudWxsKSB7CgkJCQlzZWFyY2godGVybSkK CQkJfQoJCX0gZWxzZSB7CgkJCXJlc2V0X3NlYXJjaCgpOwoJCQlzZWFyY2hp bmcgPSAwOwoJCQlzZWFyY2hidG4uc3R5bGVbIm9wYWNpdHkiXSA9ICIwLjEi OwoJCQlzZWFyY2hidG4uZmlyc3RDaGlsZC5ub2RlVmFsdWUgPSAiU2VhcmNo IgoJCQltYXRjaGVkdHh0LnN0eWxlWyJvcGFjaXR5Il0gPSAiMC4wIjsKCQkJ bWF0Y2hlZHR4dC5maXJzdENoaWxkLm5vZGVWYWx1ZSA9ICIiCgkJfQoJfQoJ ZnVuY3Rpb24gc2VhcmNoKHRlcm0pIHsKCQl2YXIgcmUgPSBuZXcgUmVnRXhw KHRlcm0pOwoJCXZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdO YW1lKCJnIik7CgkJdmFyIG1hdGNoZXMgPSBuZXcgT2JqZWN0KCk7CgkJdmFy IG1heHdpZHRoID0gMDsKCQlmb3IgKHZhciBpID0gMDsgaSA8IGVsLmxlbmd0 aDsgaSsrKSB7CgkJCXZhciBlID0gZWxbaV07CgkJCWlmIChlLmF0dHJpYnV0 ZXNbImNsYXNzIl0udmFsdWUgIT0gImZ1bmNfZyIpCgkJCQljb250aW51ZTsK CQkJdmFyIGZ1bmMgPSBnX3RvX2Z1bmMoZSk7CgkJCXZhciByZWN0ID0gZmlu ZF9jaGlsZChlLCAicmVjdCIpOwoJCQlpZiAocmVjdCA9PSBudWxsKSB7CgkJ CQkvLyB0aGUgcmVjdCBtaWdodCBiZSB3cmFwcGVkIGluIGFuIGFuY2hvcgoJ CQkJLy8gaWYgbmFtZWF0dHIgaHJlZiBpcyBiZWluZyB1c2VkCgkJCQlpZiAo cmVjdCA9IGZpbmRfY2hpbGQoZSwgImEiKSkgewoJCQkJICAgIHJlY3QgPSBm aW5kX2NoaWxkKHIsICJyZWN0Iik7CgkJCQl9CgkJCX0KCQkJaWYgKGZ1bmMg PT0gbnVsbCB8fCByZWN0ID09IG51bGwpCgkJCQljb250aW51ZTsKCgkJCS8v IFNhdmUgbWF4IHdpZHRoLiBPbmx5IHdvcmtzIGFzIHdlIGhhdmUgYSByb290 IGZyYW1lCgkJCXZhciB3ID0gcGFyc2VGbG9hdChyZWN0LmF0dHJpYnV0ZXNb IndpZHRoIl0udmFsdWUpOwoJCQlpZiAodyA+IG1heHdpZHRoKQoJCQkJbWF4 d2lkdGggPSB3OwoKCQkJaWYgKGZ1bmMubWF0Y2gocmUpKSB7CgkJCQkvLyBo aWdobGlnaHQKCQkJCXZhciB4ID0gcGFyc2VGbG9hdChyZWN0LmF0dHJpYnV0 ZXNbIngiXS52YWx1ZSk7CgkJCQlvcmlnX3NhdmUocmVjdCwgImZpbGwiKTsK CQkJCXJlY3QuYXR0cmlidXRlc1siZmlsbCJdLnZhbHVlID0KCQkJCSAgICAi cmdiKDIzMCwwLDIzMCkiOwoKCQkJCS8vIHJlbWVtYmVyIG1hdGNoZXMKCQkJ CWlmIChtYXRjaGVzW3hdID09IHVuZGVmaW5lZCkgewoJCQkJCW1hdGNoZXNb eF0gPSB3OwoJCQkJfSBlbHNlIHsKCQkJCQlpZiAodyA+IG1hdGNoZXNbeF0p IHsKCQkJCQkJLy8gb3ZlcndyaXRlIHdpdGggcGFyZW50CgkJCQkJCW1hdGNo ZXNbeF0gPSB3OwoJCQkJCX0KCQkJCX0KCQkJCXNlYXJjaGluZyA9IDE7CgkJ CX0KCQl9CgkJaWYgKCFzZWFyY2hpbmcpCgkJCXJldHVybjsKCgkJc2VhcmNo YnRuLnN0eWxlWyJvcGFjaXR5Il0gPSAiMS4wIjsKCQlzZWFyY2hidG4uZmly c3RDaGlsZC5ub2RlVmFsdWUgPSAiUmVzZXQgU2VhcmNoIgoKCQkvLyBjYWxj dWxhdGUgcGVyY2VudCBtYXRjaGVkLCBleGNsdWRpbmcgdmVydGljYWwgb3Zl cmxhcAoJCXZhciBjb3VudCA9IDA7CgkJdmFyIGxhc3R4ID0gLTE7CgkJdmFy IGxhc3R3ID0gMDsKCQl2YXIga2V5cyA9IEFycmF5KCk7CgkJZm9yIChrIGlu IG1hdGNoZXMpIHsKCQkJaWYgKG1hdGNoZXMuaGFzT3duUHJvcGVydHkoaykp CgkJCQlrZXlzLnB1c2goayk7CgkJfQoJCS8vIHNvcnQgdGhlIG1hdGNoZWQg ZnJhbWVzIGJ5IHRoZWlyIHggbG9jYXRpb24KCQkvLyBhc2NlbmRpbmcsIHRo ZW4gd2lkdGggZGVzY2VuZGluZwoJCWtleXMuc29ydChmdW5jdGlvbihhLCBi KXsKCQkJCXJldHVybiBhIC0gYjsKCQkJaWYgKGEgPCBiIHx8IGEgPiBiKQoJ CQkJcmV0dXJuIGEgLSBiOwoJCQlyZXR1cm4gbWF0Y2hlc1tiXSAtIG1hdGNo ZXNbYV07CgkJfSk7CgkJLy8gU3RlcCB0aHJvdWdoIGZyYW1lcyBzYXZpbmcg b25seSB0aGUgYmlnZ2VzdCBib3R0b20tdXAgZnJhbWVzCgkJLy8gdGhhbmtz IHRvIHRoZSBzb3J0IG9yZGVyLiBUaGlzIHJlbGllcyBvbiB0aGUgdHJlZSBw cm9wZXJ0eQoJCS8vIHdoZXJlIGNoaWxkcmVuIGFyZSBhbHdheXMgc21hbGxl ciB0aGFuIHRoZWlyIHBhcmVudHMuCgkJZm9yICh2YXIgayBpbiBrZXlzKSB7 CgkJCXZhciB4ID0gcGFyc2VGbG9hdChrZXlzW2tdKTsKCQkJdmFyIHcgPSBt YXRjaGVzW2tleXNba11dOwoJCQlpZiAoeCA+PSBsYXN0eCArIGxhc3R3KSB7 CgkJCQljb3VudCArPSB3OwoJCQkJbGFzdHggPSB4OwoJCQkJbGFzdHcgPSB3 OwoJCQl9CgkJfQoJCS8vIGRpc3BsYXkgbWF0Y2hlZCBwZXJjZW50CgkJbWF0 Y2hlZHR4dC5zdHlsZVsib3BhY2l0eSJdID0gIjEuMCI7CgkJcGN0ID0gMTAw ICogY291bnQgLyBtYXh3aWR0aDsKCQlpZiAocGN0ID09IDEwMCkKCQkJcGN0 ID0gIjEwMCIKCQllbHNlCgkJCXBjdCA9IHBjdC50b0ZpeGVkKDEpCgkJbWF0 Y2hlZHR4dC5maXJzdENoaWxkLm5vZGVWYWx1ZSA9ICJNYXRjaGVkOiAiICsg cGN0ICsgIiUiOwoJfQoJZnVuY3Rpb24gc2VhcmNob3ZlcihlKSB7CgkJc2Vh cmNoYnRuLnN0eWxlWyJvcGFjaXR5Il0gPSAiMS4wIjsKCX0KCWZ1bmN0aW9u IHNlYXJjaG91dChlKSB7CgkJaWYgKHNlYXJjaGluZykgewoJCQlzZWFyY2hi dG4uc3R5bGVbIm9wYWNpdHkiXSA9ICIxLjAiOwoJCX0gZWxzZSB7CgkJCXNl YXJjaGJ0bi5zdHlsZVsib3BhY2l0eSJdID0gIjAuMSI7CgkJfQoJfQpdXT4K PC9zY3JpcHQ+CjxyZWN0IHg9IjAuMCIgeT0iMCIgd2lkdGg9IjEyMDAuMCIg aGVpZ2h0PSIxMzc4LjAiIGZpbGw9InVybCgjYmFja2dyb3VuZCkiICAvPgo8 dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB4PSI2MDAuMDAiIHk9IjI0IiBm b250LXNpemU9IjE3IiBmb250LWZhbWlseT0iVmVyZGFuYSIgZmlsbD0icmdi KDAsMCwwKSIgID5MV0xPQ0tfU1RBVFM6IEJsb2NrIHRpbWUgLyBibG9jazwv dGV4dD4KPHRleHQgdGV4dC1hbmNob3I9IiIgeD0iMTAuMDAiIHk9IjEzNjEi IGZvbnQtc2l6ZT0iMTIiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmaWxsPSJy Z2IoMCwwLDApIiBpZD0iZGV0YWlscyIgPiA8L3RleHQ+Cjx0ZXh0IHRleHQt YW5jaG9yPSIiIHg9IjEwLjAwIiB5PSIyNCIgZm9udC1zaXplPSIxMiIgZm9u dC1mYW1pbHk9IlZlcmRhbmEiIGZpbGw9InJnYigwLDAsMCkiIGlkPSJ1bnpv b20iIG9uY2xpY2s9InVuem9vbSgpIiBzdHlsZT0ib3BhY2l0eTowLjA7Y3Vy c29yOnBvaW50ZXIiID5SZXNldCBab29tPC90ZXh0Pgo8dGV4dCB0ZXh0LWFu Y2hvcj0iIiB4PSIxMDkwLjAwIiB5PSIyNCIgZm9udC1zaXplPSIxMiIgZm9u dC1mYW1pbHk9IlZlcmRhbmEiIGZpbGw9InJnYigwLDAsMCkiIGlkPSJzZWFy Y2giIG9ubW91c2VvdmVyPSJzZWFyY2hvdmVyKCkiIG9ubW91c2VvdXQ9InNl YXJjaG91dCgpIiBvbmNsaWNrPSJzZWFyY2hfcHJvbXB0KCkiIHN0eWxlPSJv cGFjaXR5OjAuMTtjdXJzb3I6cG9pbnRlciIgPlNlYXJjaDwvdGV4dD4KPHRl eHQgdGV4dC1hbmNob3I9IiIgeD0iMTA5MC4wMCIgeT0iMTM2MSIgZm9udC1z aXplPSIxMiIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZpbGw9InJnYigwLDAs MCkiIGlkPSJtYXRjaGVkIiA+IDwvdGV4dD4KPGcgY2xhc3M9ImZ1bmNfZyIg b25tb3VzZW92ZXI9InModGhpcykiIG9ubW91c2VvdXQ9ImMoKSIgb25jbGlj az0iem9vbSh0aGlzKSI+Cjx0aXRsZT40MiAoMzQsODI2IHNhbXBsZXMsIDk5 LjI4JSk8L3RpdGxlPjxyZWN0IHg9IjEwLjAiIHk9IjY0MSIgd2lkdGg9IjEx NzEuNSIgaGVpZ2h0PSIxNS4wIiBmaWxsPSJyZ2IoMjM4LDE5MCw0MikiIHJ4 PSIyIiByeT0iMiIgLz4KPHRleHQgdGV4dC1hbmNob3I9IiIgeD0iMTMuMDAi IHk9IjY1MS41IiBmb250LXNpemU9IjEyIiBmb250LWZhbWlseT0iVmVyZGFu YSIgZmlsbD0icmdiKDAsMCwwKSIgID40MjwvdGV4dD4KPC9nPgo8ZyBjbGFz cz0iZnVuY19nIiBvbm1vdXNlb3Zlcj0icyh0aGlzKSIgb25tb3VzZW91dD0i YygpIiBvbmNsaWNrPSJ6b29tKHRoaXMpIj4KPHRpdGxlPjYyICgzNCw4MjYg c2FtcGxlcywgOTkuMjglKTwvdGl0bGU+PHJlY3QgeD0iMTAuMCIgeT0iMzIx IiB3aWR0aD0iMTE3MS41IiBoZWlnaHQ9IjE1LjAiIGZpbGw9InJnYigyNTEs MTg5LDM3KSIgcng9IjIiIHJ5PSIyIiAvPgo8dGV4dCB0ZXh0LWFuY2hvcj0i IiB4PSIxMy4wMCIgeT0iMzMxLjUiIGZvbnQtc2l6ZT0iMTIiIGZvbnQtZmFt aWx5PSJWZXJkYW5hIiBmaWxsPSJyZ2IoMCwwLDApIiAgPjYyPC90ZXh0Pgo8 L2c+CjxnIGNsYXNzPSJmdW5jX2ciIG9ubW91c2VvdmVyPSJzKHRoaXMpIiBv bm1vdXNlb3V0PSJjKCkiIG9uY2xpY2s9Inpvb20odGhpcykiPgo8dGl0bGU+ NTcgKDM0LDgyNiBzYW1wbGVzLCA5OS4yOCUpPC90aXRsZT48cmVjdCB4PSIx MC4wIiB5PSI0MDEiIHdpZHRoPSIxMTcxLjUiIGhlaWdodD0iMTUuMCIgZmls bD0icmdiKDIxMywxNzUsMjYpIiByeD0iMiIgcnk9IjIiIC8+Cjx0ZXh0IHRl eHQtYW5jaG9yPSIiIHg9IjEzLjAwIiB5PSI0MTEuNSIgZm9udC1zaXplPSIx MiIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZpbGw9InJnYigwLDAsMCkiICA+ NTc8L3RleHQ+CjwvZz4KPGcgY2xhc3M9ImZ1bmNfZyIgb25tb3VzZW92ZXI9 InModGhpcykiIG9ubW91c2VvdXQ9ImMoKSIgb25jbGljaz0iem9vbSh0aGlz KSI+Cjx0aXRsZT4zNiAoMzQsODI2IHNhbXBsZXMsIDk5LjI4JSk8L3RpdGxl PjxyZWN0IHg9IjEwLjAiIHk9IjczNyIgd2lkdGg9IjExNzEuNSIgaGVpZ2h0 PSIxNS4wIiBmaWxsPSJyZ2IoMjM0LDE4LDI4KSIgcng9IjIiIHJ5PSIyIiAv Pgo8dGV4dCB0ZXh0LWFuY2hvcj0iIiB4PSIxMy4wMCIgeT0iNzQ3LjUiIGZv bnQtc2l6ZT0iMTIiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmaWxsPSJyZ2Io MCwwLDApIiAgPjM2PC90ZXh0Pgo8L2c+CjxnIGNsYXNzPSJmdW5jX2ciIG9u bW91c2VvdmVyPSJzKHRoaXMpIiBvbm1vdXNlb3V0PSJjKCkiIG9uY2xpY2s9 Inpvb20odGhpcykiPgo8dGl0bGU+MzEgKDM0LDgyNiBzYW1wbGVzLCA5OS4y OCUpPC90aXRsZT48cmVjdCB4PSIxMC4wIiB5PSI4MTciIHdpZHRoPSIxMTcx LjUiIGhlaWdodD0iMTUuMCIgZmlsbD0icmdiKDI0OSwyMCwzNikiIHJ4PSIy IiByeT0iMiIgLz4KPHRleHQgdGV4dC1hbmNob3I9IiIgeD0iMTMuMDAiIHk9 IjgyNy41IiBmb250LXNpemU9IjEyIiBmb250LWZhbWlseT0iVmVyZGFuYSIg ZmlsbD0icmdiKDAsMCwwKSIgID4zMTwvdGV4dD4KPC9nPgo8ZyBjbGFzcz0i ZnVuY19nIiBvbm1vdXNlb3Zlcj0icyh0aGlzKSIgb25tb3VzZW91dD0iYygp IiBvbmNsaWNrPSJ6b29tKHRoaXMpIj4KPHRpdGxlPm1haW4gNzk1ODU4ICg4 IHNhbXBsZXMsIDAuMDIlKTwvdGl0bGU+PHJlY3QgeD0iMTE4Ny45IiB5PSIx MjgxIiB3aWR0aD0iMC4yIiBoZWlnaHQ9IjE1LjAiIGZpbGw9InJnYigyMzUs MjYsMikiIHJ4PSIyIiByeT0iMiIgLz4KPHRleHQgdGV4dC1hbmNob3I9IiIg eD0iMTE5MC44OCIgeT0iMTI5MS41IiBmb250LXNpemU9IjEyIiBmb250LWZh bWlseT0iVmVyZGFuYSIgZmlsbD0icmdiKDAsMCwwKSIgID48L3RleHQ+Cjwv Zz4KPGcgY2xhc3M9ImZ1bmNfZyIgb25tb3VzZW92ZXI9InModGhpcykiIG9u bW91c2VvdXQ9ImMoKSIgb25jbGljaz0iem9vbSh0aGlzKSI+Cjx0aXRsZT4z MyAoMzQsODI2IHNhbXBsZXMsIDk5LjI4JSk8L3RpdGxlPjxyZWN0IHg9IjEw LjAiIHk9Ijc4NSIgd2lkdGg9IjExNzEuNSIgaGVpZ2h0PSIxNS4wIiBmaWxs PSJyZ2IoMjUwLDY1LDUpIiByeD0iMiIgcnk9IjIiIC8+Cjx0ZXh0IHRleHQt YW5jaG9yPSIiIHg9IjEzLjAwIiB5PSI3OTUuNSIgZm9udC1zaXplPSIxMiIg Zm9udC1mYW1pbHk9IlZlcmRhbmEiIGZpbGw9InJnYigwLDAsMCkiICA+MzM8 L3RleHQ+CjwvZz4KPGcgY2xhc3M9ImZ1bmNfZyIgb25tb3VzZW92ZXI9InMo dGhpcykiIG9ubW91c2VvdXQ9ImMoKSIgb25jbGljaz0iem9vbSh0aGlzKSI+ Cjx0aXRsZT42MCAoMzQsODI2IHNhbXBsZXMsIDk5LjI4JSk8L3RpdGxlPjxy ZWN0IHg9IjEwLjAiIHk9IjM1MyIgd2lkdGg9IjExNzEuNSIgaGVpZ2h0PSIx NS4wIiBmaWxsPSJyZ2IoMjA2LDIyNCwyOCkiIHJ4PSIyIiByeT0iMiIgLz4K PHRleHQgdGV4dC1hbmNob3I9IiIgeD0iMTMuMDAiIHk9IjM2My41IiBmb250 LXNpemU9IjEyIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZmlsbD0icmdiKDAs MCwwKSIgID42MDwvdGV4dD4KPC9nPgo8ZyBjbGFzcz0iZnVuY19nIiBvbm1v dXNlb3Zlcj0icyh0aGlzKSIgb25tb3VzZW91dD0iYygpIiBvbmNsaWNrPSJ6 b29tKHRoaXMpIj4KPHRpdGxlPjggKDM0LDgzMSBzYW1wbGVzLCA5OS4yOSUp PC90aXRsZT48cmVjdCB4PSIxMC4wIiB5PSIxMTg1IiB3aWR0aD0iMTE3MS42 IiBoZWlnaHQ9IjE1LjAiIGZpbGw9InJnYigyNTIsMjEyLDQxKSIgcng9IjIi IHJ5PSIyIiAvPgo8dGV4dCB0ZXh0LWFuY2hvcj0iIiB4PSIxMy4wMCIgeT0i MTE5NS41IiBmb250LXNpemU9IjEyIiBmb250LWZhbWlseT0iVmVyZGFuYSIg ZmlsbD0icmdiKDAsMCwwKSIgID44PC90ZXh0Pgo8L2c+CjxnIGNsYXNzPSJm dW5jX2ciIG9ubW91c2VvdmVyPSJzKHRoaXMpIiBvbm1vdXNlb3V0PSJjKCki IG9uY2xpY2s9Inpvb20odGhpcykiPgo8dGl0bGU+MzcgKDM0LDgyNiBzYW1w bGVzLCA5OS4yOCUpPC90aXRsZT48cmVjdCB4PSIxMC4wIiB5PSI3MjEiIHdp ZHRoPSIxMTcxLjUiIGhlaWdodD0iMTUuMCIgZmlsbD0icmdiKDIyNSwxMjUs MjcpIiByeD0iMiIgcnk9IjIiIC8+Cjx0ZXh0IHRleHQtYW5jaG9yPSIiIHg9 IjEzLjAwIiB5PSI3MzEuNSIgZm9udC1zaXplPSIxMiIgZm9udC1mYW1pbHk9 IlZlcmRhbmEiIGZpbGw9InJnYigwLDAsMCkiICA+Mzc8L3RleHQ+CjwvZz4K PGcgY2xhc3M9ImZ1bmNfZyIgb25tb3VzZW92ZXI9InModGhpcykiIG9ubW91 c2VvdXQ9ImMoKSIgb25jbGljaz0iem9vbSh0aGlzKSI+Cjx0aXRsZT4xICgz NSwwODAgc2FtcGxlcywgMTAwLjAwJSk8L3RpdGxlPjxyZWN0IHg9IjEwLjAi IHk9IjEyOTciIHdpZHRoPSIxMTgwLjAiIGhlaWdodD0iMTUuMCIgZmlsbD0i cmdiKDIwOCwxMTUsNTApIiByeD0iMiIgcnk9IjIiIC8+Cjx0ZXh0IHRleHQt YW5jaG9yPSIiIHg9IjEzLjAwIiB5PSIxMzA3LjUiIGZvbnQtc2l6ZT0iMTIi IGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmaWxsPSJyZ2IoMCwwLDApIiAgPjE8 L3RleHQ+CjwvZz4KPGcgY2xhc3M9ImZ1bmNfZyIgb25tb3VzZW92ZXI9InMo dGhpcykiIG9ubW91c2VvdXQ9ImMoKSIgb25jbGljaz0iem9vbSh0aGlzKSI+ Cjx0aXRsZT42ICgzNCw4MzEgc2FtcGxlcywgOTkuMjklKTwvdGl0bGU+PHJl Y3QgeD0iMTAuMCIgeT0iMTIxNyIgd2lkdGg9IjExNzEuNiIgaGVpZ2h0PSIx NS4wIiBmaWxsPSJyZ2IoMjE5LDExNCw1MCkiIHJ4PSIyIiByeT0iMiIgLz4K PHRleHQgdGV4dC1hbmNob3I9IiIgeD0iMTMuMDAiIHk9IjEyMjcuNSIgZm9u dC1zaXplPSIxMiIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZpbGw9InJnYigw LDAsMCkiICA+NjwvdGV4dD4KPC9nPgo8ZyBjbGFzcz0iZnVuY19nIiBvbm1v dXNlb3Zlcj0icyh0aGlzKSIgb25tb3VzZW91dD0iYygpIiBvbmNsaWNrPSJ6 b29tKHRoaXMpIj4KPHRpdGxlPjE4ICgzNCw4MjYgc2FtcGxlcywgOTkuMjgl KTwvdGl0bGU+PHJlY3QgeD0iMTAuMCIgeT0iMTAyNSIgd2lkdGg9IjExNzEu NSIgaGVpZ2h0PSIxNS4wIiBmaWxsPSJyZ2IoMjMyLDE4NywzNCkiIHJ4PSIy IiByeT0iMiIgLz4KPHRleHQgdGV4dC1hbmNob3I9IiIgeD0iMTMuMDAiIHk9 IjEwMzUuNSIgZm9udC1zaXplPSIxMiIgZm9udC1mYW1pbHk9IlZlcmRhbmEi IGZpbGw9InJnYigwLDAsMCkiICA+MTg8L3RleHQ+CjwvZz4KPGcgY2xhc3M9 ImZ1bmNfZyIgb25tb3VzZW92ZXI9InModGhpcykiIG9ubW91c2VvdXQ9ImMo KSIgb25jbGljaz0iem9vbSh0aGlzKSI+Cjx0aXRsZT40MCAoMzQsODI2IHNh bXBsZXMsIDk5LjI4JSk8L3RpdGxlPjxyZWN0IHg9IjEwLjAiIHk9IjY3MyIg d2lkdGg9IjExNzEuNSIgaGVpZ2h0PSIxNS4wIiBmaWxsPSJyZ2IoMjA5LDE5 LDQ0KSIgcng9IjIiIHJ5PSIyIiAvPgo8dGV4dCB0ZXh0LWFuY2hvcj0iIiB4 PSIxMy4wMCIgeT0iNjgzLjUiIGZvbnQtc2l6ZT0iMTIiIGZvbnQtZmFtaWx5 PSJWZXJkYW5hIiBmaWxsPSJyZ2IoMCwwLDApIiAgPjQwPC90ZXh0Pgo8L2c+ CjxnIGNsYXNzPSJmdW5jX2ciIG9ubW91c2VvdmVyPSJzKHRoaXMpIiBvbm1v dXNlb3V0PSJjKCkiIG9uY2xpY2s9Inpvb20odGhpcykiPgo8dGl0bGU+KHVu YXNzaWduZWQ6MCkgKDM0LDgyNiBzYW1wbGVzLCA5OS4yOCUpPC90aXRsZT48 cmVjdCB4PSIxMC4wIiB5PSIzMyIgd2lkdGg9IjExNzEuNSIgaGVpZ2h0PSIx NS4wIiBmaWxsPSJyZ2IoMjQzLDIxLDI4KSIgcng9IjIiIHJ5PSIyIiAvPgo8 dGV4dCB0ZXh0LWFuY2hvcj0iIiB4PSIxMy4wMCIgeT0iNDMuNSIgZm9udC1z aXplPSIxMiIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZpbGw9InJnYigwLDAs MCkiICA+KHVuYXNzaWduZWQ6MCk8L3RleHQ+CjwvZz4KPGcgY2xhc3M9ImZ1 bmNfZyIgb25tb3VzZW92ZXI9InModGhpcykiIG9ubW91c2VvdXQ9ImMoKSIg b25jbGljaz0iem9vbSh0aGlzKSI+Cjx0aXRsZT4yNCAoMzQsODI2IHNhbXBs ZXMsIDk5LjI4JSk8L3RpdGxlPjxyZWN0IHg9IjEwLjAiIHk9IjkyOSIgd2lk dGg9IjExNzEuNSIgaGVpZ2h0PSIxNS4wIiBmaWxsPSJyZ2IoMjQ5LDksMjUp IiByeD0iMiIgcnk9IjIiIC8+Cjx0ZXh0IHRleHQtYW5jaG9yPSIiIHg9IjEz LjAwIiB5PSI5MzkuNSIgZm9udC1zaXplPSIxMiIgZm9udC1mYW1pbHk9IlZl cmRhbmEiIGZpbGw9InJnYigwLDAsMCkiICA+MjQ8L3RleHQ+CjwvZz4KPGcg Y2xhc3M9ImZ1bmNfZyIgb25tb3VzZW92ZXI9InModGhpcykiIG9ubW91c2Vv dXQ9ImMoKSIgb25jbGljaz0iem9vbSh0aGlzKSI+Cjx0aXRsZT5sd2xvY2tf c3RhdHMgKDM1LDA4MCBzYW1wbGVzLCAxMDAuMDAlKTwvdGl0bGU+PHJlY3Qg eD0iMTAuMCIgeT0iMTMxMyIgd2lkdGg9IjExODAuMCIgaGVpZ2h0PSIxNS4w IiBmaWxsPSJyZ2IoMjIzLDE3MywxOCkiIHJ4PSIyIiByeT0iMiIgLz4KPHRl eHQgdGV4dC1hbmNob3I9IiIgeD0iMTMuMDAiIHk9IjEzMjMuNSIgZm9udC1z aXplPSIxMiIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZpbGw9InJnYigwLDAs MCkiICA+bHdsb2NrX3N0YXRzPC90ZXh0Pgo8L2c+CjxnIGNsYXNzPSJmdW5j X2ciIG9ubW91c2VvdmVyPSJzKHRoaXMpIiBvbm1vdXNlb3V0PSJjKCkiIG9u Y2xpY2s9Inpvb20odGhpcykiPgo8dGl0bGU+NDYgKDM0LDgyNiBzYW1wbGVz LCA5OS4yOCUpPC90aXRsZT48cmVjdCB4PSIxMC4wIiB5PSI1NzciIHdpZHRo PSIxMTcxLjUiIGhlaWdodD0iMTUuMCIgZmlsbD0icmdiKDIwNiwxNjcsMjkp IiByeD0iMiIgcnk9IjIiIC8+Cjx0ZXh0IHRleHQtYW5jaG9yPSIiIHg9IjEz LjAwIiB5PSI1ODcuNSIgZm9udC1zaXplPSIxMiIgZm9udC1mYW1pbHk9IlZl cmRhbmEiIGZpbGw9InJnYigwLDAsMCkiICA+NDY8L3RleHQ+CjwvZz4KPGcg Y2xhc3M9ImZ1bmNfZyIgb25tb3VzZW92ZXI9InModGhpcykiIG9ubW91c2Vv dXQ9ImMoKSIgb25jbGljaz0iem9vbSh0aGlzKSI+Cjx0aXRsZT41NCAoMzQs ODI2IHNhbXBsZXMsIDk5LjI4JSk8L3RpdGxlPjxyZWN0IHg9IjEwLjAiIHk9 IjQ0OSIgd2lkdGg9IjExNzEuNSIgaGVpZ2h0PSIxNS4wIiBmaWxsPSJyZ2Io MjQ5LDM2LDM0KSIgcng9IjIiIHJ5PSIyIiAvPgo8dGV4dCB0ZXh0LWFuY2hv cj0iIiB4PSIxMy4wMCIgeT0iNDU5LjUiIGZvbnQtc2l6ZT0iMTIiIGZvbnQt ZmFtaWx5PSJWZXJkYW5hIiBmaWxsPSJyZ2IoMCwwLDApIiAgPjU0PC90ZXh0 Pgo8L2c+CjxnIGNsYXNzPSJmdW5jX2ciIG9ubW91c2VvdmVyPSJzKHRoaXMp IiBvbm1vdXNlb3V0PSJjKCkiIG9uY2xpY2s9Inpvb20odGhpcykiPgo8dGl0 bGU+NzUgKDM0LDgyNiBzYW1wbGVzLCA5OS4yOCUpPC90aXRsZT48cmVjdCB4 PSIxMC4wIiB5PSIxMTMiIHdpZHRoPSIxMTcxLjUiIGhlaWdodD0iMTUuMCIg ZmlsbD0icmdiKDIwOCwyMTMsMTYpIiByeD0iMiIgcnk9IjIiIC8+Cjx0ZXh0 IHRleHQtYW5jaG9yPSIiIHg9IjEzLjAwIiB5PSIxMjMuNSIgZm9udC1zaXpl PSIxMiIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZpbGw9InJnYigwLDAsMCki ICA+NzU8L3RleHQ+CjwvZz4KPGcgY2xhc3M9ImZ1bmNfZyIgb25tb3VzZW92 ZXI9InModGhpcykiIG9ubW91c2VvdXQ9ImMoKSIgb25jbGljaz0iem9vbSh0 aGlzKSI+Cjx0aXRsZT4zMiAoMzQsODI2IHNhbXBsZXMsIDk5LjI4JSk8L3Rp dGxlPjxyZWN0IHg9IjEwLjAiIHk9IjgwMSIgd2lkdGg9IjExNzEuNSIgaGVp Z2h0PSIxNS4wIiBmaWxsPSJyZ2IoMjE1LDIxNSwyMykiIHJ4PSIyIiByeT0i MiIgLz4KPHRleHQgdGV4dC1hbmNob3I9IiIgeD0iMTMuMDAiIHk9IjgxMS41 IiBmb250LXNpemU9IjEyIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZmlsbD0i cmdiKDAsMCwwKSIgID4zMjwvdGV4dD4KPC9nPgo8ZyBjbGFzcz0iZnVuY19n IiBvbm1vdXNlb3Zlcj0icyh0aGlzKSIgb25tb3VzZW91dD0iYygpIiBvbmNs aWNrPSJ6b29tKHRoaXMpIj4KPHRpdGxlPm1haW4gMjA3MDI0OCAoMjAgc2Ft cGxlcywgMC4wNiUpPC90aXRsZT48cmVjdCB4PSIxMTgyLjciIHk9IjEyODEi IHdpZHRoPSIwLjciIGhlaWdodD0iMTUuMCIgZmlsbD0icmdiKDIxMSwyMTAs MzUpIiByeD0iMiIgcnk9IjIiIC8+Cjx0ZXh0IHRleHQtYW5jaG9yPSIiIHg9 IjExODUuNzAiIHk9IjEyOTEuNSIgZm9udC1zaXplPSIxMiIgZm9udC1mYW1p bHk9IlZlcmRhbmEiIGZpbGw9InJnYigwLDAsMCkiICA+PC90ZXh0Pgo8L2c+ CjxnIGNsYXNzPSJmdW5jX2ciIG9ubW91c2VvdmVyPSJzKHRoaXMpIiBvbm1v dXNlb3V0PSJjKCkiIG9uY2xpY2s9Inpvb20odGhpcykiPgo8dGl0bGU+MTkg KDM0LDgyNiBzYW1wbGVzLCA5OS4yOCUpPC90aXRsZT48cmVjdCB4PSIxMC4w IiB5PSIxMDA5IiB3aWR0aD0iMTE3MS41IiBoZWlnaHQ9IjE1LjAiIGZpbGw9 InJnYigyMjcsMTI3LDE0KSIgcng9IjIiIHJ5PSIyIiAvPgo8dGV4dCB0ZXh0 LWFuY2hvcj0iIiB4PSIxMy4wMCIgeT0iMTAxOS41IiBmb250LXNpemU9IjEy IiBmb250LWZhbWlseT0iVmVyZGFuYSIgZmlsbD0icmdiKDAsMCwwKSIgID4x OTwvdGV4dD4KPC9nPgo8ZyBjbGFzcz0iZnVuY19nIiBvbm1vdXNlb3Zlcj0i cyh0aGlzKSIgb25tb3VzZW91dD0iYygpIiBvbmNsaWNrPSJ6b29tKHRoaXMp Ij4KPHRpdGxlPjI1ICgzNCw4MjYgc2FtcGxlcywgOTkuMjglKTwvdGl0bGU+ PHJlY3QgeD0iMTAuMCIgeT0iOTEzIiB3aWR0aD0iMTE3MS41IiBoZWlnaHQ9 IjE1LjAiIGZpbGw9InJnYigyMzMsMzksNDcpIiByeD0iMiIgcnk9IjIiIC8+ Cjx0ZXh0IHRleHQtYW5jaG9yPSIiIHg9IjEzLjAwIiB5PSI5MjMuNSIgZm9u dC1zaXplPSIxMiIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZpbGw9InJnYigw LDAsMCkiICA+MjU8L3RleHQ+CjwvZz4KPGcgY2xhc3M9ImZ1bmNfZyIgb25t b3VzZW92ZXI9InModGhpcykiIG9ubW91c2VvdXQ9ImMoKSIgb25jbGljaz0i em9vbSh0aGlzKSI+Cjx0aXRsZT4zNSAoMzQsODI2IHNhbXBsZXMsIDk5LjI4 JSk8L3RpdGxlPjxyZWN0IHg9IjEwLjAiIHk9Ijc1MyIgd2lkdGg9IjExNzEu NSIgaGVpZ2h0PSIxNS4wIiBmaWxsPSJyZ2IoMjQwLDE2MCw0NCkiIHJ4PSIy IiByeT0iMiIgLz4KPHRleHQgdGV4dC1hbmNob3I9IiIgeD0iMTMuMDAiIHk9 Ijc2My41IiBmb250LXNpemU9IjEyIiBmb250LWZhbWlseT0iVmVyZGFuYSIg ZmlsbD0icmdiKDAsMCwwKSIgID4zNTwvdGV4dD4KPC9nPgo8ZyBjbGFzcz0i ZnVuY19nIiBvbm1vdXNlb3Zlcj0icyh0aGlzKSIgb25tb3VzZW91dD0iYygp IiBvbmNsaWNrPSJ6b29tKHRoaXMpIj4KPHRpdGxlPjUgKDM0LDgzMSBzYW1w bGVzLCA5OS4yOSUpPC90aXRsZT48cmVjdCB4PSIxMC4wIiB5PSIxMjMzIiB3 aWR0aD0iMTE3MS42IiBoZWlnaHQ9IjE1LjAiIGZpbGw9InJnYigyMjQsMTgy LDQ0KSIgcng9IjIiIHJ5PSIyIiAvPgo8dGV4dCB0ZXh0LWFuY2hvcj0iIiB4 PSIxMy4wMCIgeT0iMTI0My41IiBmb250LXNpemU9IjEyIiBmb250LWZhbWls eT0iVmVyZGFuYSIgZmlsbD0icmdiKDAsMCwwKSIgID41PC90ZXh0Pgo8L2c+ CjxnIGNsYXNzPSJmdW5jX2ciIG9ubW91c2VvdmVyPSJzKHRoaXMpIiBvbm1v dXNlb3V0PSJjKCkiIG9uY2xpY2s9Inpvb20odGhpcykiPgo8dGl0bGU+NTMg KDM0LDgyNiBzYW1wbGVzLCA5OS4yOCUpPC90aXRsZT48cmVjdCB4PSIxMC4w IiB5PSI0NjUiIHdpZHRoPSIxMTcxLjUiIGhlaWdodD0iMTUuMCIgZmlsbD0i cmdiKDIzNCwxNywzOCkiIHJ4PSIyIiByeT0iMiIgLz4KPHRleHQgdGV4dC1h bmNob3I9IiIgeD0iMTMuMDAiIHk9IjQ3NS41IiBmb250LXNpemU9IjEyIiBm b250LWZhbWlseT0iVmVyZGFuYSIgZmlsbD0icmdiKDAsMCwwKSIgID41Mzwv dGV4dD4KPC9nPgo8ZyBjbGFzcz0iZnVuY19nIiBvbm1vdXNlb3Zlcj0icyh0 aGlzKSIgb25tb3VzZW91dD0iYygpIiBvbmNsaWNrPSJ6b29tKHRoaXMpIj4K PHRpdGxlPjcxICgzNCw4MjYgc2FtcGxlcywgOTkuMjglKTwvdGl0bGU+PHJl Y3QgeD0iMTAuMCIgeT0iMTc3IiB3aWR0aD0iMTE3MS41IiBoZWlnaHQ9IjE1 LjAiIGZpbGw9InJnYigyMjYsMTY4LDkpIiByeD0iMiIgcnk9IjIiIC8+Cjx0 ZXh0IHRleHQtYW5jaG9yPSIiIHg9IjEzLjAwIiB5PSIxODcuNSIgZm9udC1z aXplPSIxMiIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZpbGw9InJnYigwLDAs MCkiICA+NzE8L3RleHQ+CjwvZz4KPGcgY2xhc3M9ImZ1bmNfZyIgb25tb3Vz ZW92ZXI9InModGhpcykiIG9ubW91c2VvdXQ9ImMoKSIgb25jbGljaz0iem9v bSh0aGlzKSI+Cjx0aXRsZT42MSAoMzQsODI2IHNhbXBsZXMsIDk5LjI4JSk8 L3RpdGxlPjxyZWN0IHg9IjEwLjAiIHk9IjMzNyIgd2lkdGg9IjExNzEuNSIg aGVpZ2h0PSIxNS4wIiBmaWxsPSJyZ2IoMjA4LDIxMCwyOCkiIHJ4PSIyIiBy eT0iMiIgLz4KPHRleHQgdGV4dC1hbmNob3I9IiIgeD0iMTMuMDAiIHk9IjM0 Ny41IiBmb250LXNpemU9IjEyIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZmls bD0icmdiKDAsMCwwKSIgID42MTwvdGV4dD4KPC9nPgo8ZyBjbGFzcz0iZnVu Y19nIiBvbm1vdXNlb3Zlcj0icyh0aGlzKSIgb25tb3VzZW91dD0iYygpIiBv bmNsaWNrPSJ6b29tKHRoaXMpIj4KPHRpdGxlPjIwICgzNCw4MjYgc2FtcGxl cywgOTkuMjglKTwvdGl0bGU+PHJlY3QgeD0iMTAuMCIgeT0iOTkzIiB3aWR0 aD0iMTE3MS41IiBoZWlnaHQ9IjE1LjAiIGZpbGw9InJnYigyMzcsMTM4LDUy KSIgcng9IjIiIHJ5PSIyIiAvPgo8dGV4dCB0ZXh0LWFuY2hvcj0iIiB4PSIx My4wMCIgeT0iMTAwMy41IiBmb250LXNpemU9IjEyIiBmb250LWZhbWlseT0i VmVyZGFuYSIgZmlsbD0icmdiKDAsMCwwKSIgID4yMDwvdGV4dD4KPC9nPgo8 ZyBjbGFzcz0iZnVuY19nIiBvbm1vdXNlb3Zlcj0icyh0aGlzKSIgb25tb3Vz ZW91dD0iYygpIiBvbmNsaWNrPSJ6b29tKHRoaXMpIj4KPHRpdGxlPjU4ICgz NCw4MjYgc2FtcGxlcywgOTkuMjglKTwvdGl0bGU+PHJlY3QgeD0iMTAuMCIg eT0iMzg1IiB3aWR0aD0iMTE3MS41IiBoZWlnaHQ9IjE1LjAiIGZpbGw9InJn YigyMzUsMTM0LDMzKSIgcng9IjIiIHJ5PSIyIiAvPgo8dGV4dCB0ZXh0LWFu Y2hvcj0iIiB4PSIxMy4wMCIgeT0iMzk1LjUiIGZvbnQtc2l6ZT0iMTIiIGZv bnQtZmFtaWx5PSJWZXJkYW5hIiBmaWxsPSJyZ2IoMCwwLDApIiAgPjU4PC90 ZXh0Pgo8L2c+CjxnIGNsYXNzPSJmdW5jX2ciIG9ubW91c2VvdmVyPSJzKHRo aXMpIiBvbm1vdXNlb3V0PSJjKCkiIG9uY2xpY2s9Inpvb20odGhpcykiPgo8 dGl0bGU+NCAoMzQsODMxIHNhbXBsZXMsIDk5LjI5JSk8L3RpdGxlPjxyZWN0 IHg9IjEwLjAiIHk9IjEyNDkiIHdpZHRoPSIxMTcxLjYiIGhlaWdodD0iMTUu MCIgZmlsbD0icmdiKDIyMSwyMTMsNykiIHJ4PSIyIiByeT0iMiIgLz4KPHRl eHQgdGV4dC1hbmNob3I9IiIgeD0iMTMuMDAiIHk9IjEyNTkuNSIgZm9udC1z aXplPSIxMiIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZpbGw9InJnYigwLDAs MCkiICA+NDwvdGV4dD4KPC9nPgo8ZyBjbGFzcz0iZnVuY19nIiBvbm1vdXNl b3Zlcj0icyh0aGlzKSIgb25tb3VzZW91dD0iYygpIiBvbmNsaWNrPSJ6b29t KHRoaXMpIj4KPHRpdGxlPjI3ICgzNCw4MjYgc2FtcGxlcywgOTkuMjglKTwv dGl0bGU+PHJlY3QgeD0iMTAuMCIgeT0iODgxIiB3aWR0aD0iMTE3MS41IiBo ZWlnaHQ9IjE1LjAiIGZpbGw9InJnYigyMTksMTE5LDM5KSIgcng9IjIiIHJ5 PSIyIiAvPgo8dGV4dCB0ZXh0LWFuY2hvcj0iIiB4PSIxMy4wMCIgeT0iODkx LjUiIGZvbnQtc2l6ZT0iMTIiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmaWxs PSJyZ2IoMCwwLDApIiAgPjI3PC90ZXh0Pgo8L2c+CjxnIGNsYXNzPSJmdW5j X2ciIG9ubW91c2VvdmVyPSJzKHRoaXMpIiBvbm1vdXNlb3V0PSJjKCkiIG9u Y2xpY2s9Inpvb20odGhpcykiPgo8dGl0bGU+MzQgKDM0LDgyNiBzYW1wbGVz LCA5OS4yOCUpPC90aXRsZT48cmVjdCB4PSIxMC4wIiB5PSI3NjkiIHdpZHRo PSIxMTcxLjUiIGhlaWdodD0iMTUuMCIgZmlsbD0icmdiKDIwNSwxNzEsMzAp IiByeD0iMiIgcnk9IjIiIC8+Cjx0ZXh0IHRleHQtYW5jaG9yPSIiIHg9IjEz LjAwIiB5PSI3NzkuNSIgZm9udC1zaXplPSIxMiIgZm9udC1mYW1pbHk9IlZl cmRhbmEiIGZpbGw9InJnYigwLDAsMCkiICA+MzQ8L3RleHQ+CjwvZz4KPGcg Y2xhc3M9ImZ1bmNfZyIgb25tb3VzZW92ZXI9InModGhpcykiIG9ubW91c2Vv dXQ9ImMoKSIgb25jbGljaz0iem9vbSh0aGlzKSI+Cjx0aXRsZT43OCAoMzQs ODI2IHNhbXBsZXMsIDk5LjI4JSk8L3RpdGxlPjxyZWN0IHg9IjEwLjAiIHk9 IjY1IiB3aWR0aD0iMTE3MS41IiBoZWlnaHQ9IjE1LjAiIGZpbGw9InJnYigy MTQsMTAsMTkpIiByeD0iMiIgcnk9IjIiIC8+Cjx0ZXh0IHRleHQtYW5jaG9y PSIiIHg9IjEzLjAwIiB5PSI3NS41IiBmb250LXNpemU9IjEyIiBmb250LWZh bWlseT0iVmVyZGFuYSIgZmlsbD0icmdiKDAsMCwwKSIgID43ODwvdGV4dD4K PC9nPgo8ZyBjbGFzcz0iZnVuY19nIiBvbm1vdXNlb3Zlcj0icyh0aGlzKSIg b25tb3VzZW91dD0iYygpIiBvbmNsaWNrPSJ6b29tKHRoaXMpIj4KPHRpdGxl PjQ1ICgzNCw4MjYgc2FtcGxlcywgOTkuMjglKTwvdGl0bGU+PHJlY3QgeD0i MTAuMCIgeT0iNTkzIiB3aWR0aD0iMTE3MS41IiBoZWlnaHQ9IjE1LjAiIGZp bGw9InJnYigyNDIsMTk2LDE5KSIgcng9IjIiIHJ5PSIyIiAvPgo8dGV4dCB0 ZXh0LWFuY2hvcj0iIiB4PSIxMy4wMCIgeT0iNjAzLjUiIGZvbnQtc2l6ZT0i MTIiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmaWxsPSJyZ2IoMCwwLDApIiAg PjQ1PC90ZXh0Pgo8L2c+CjxnIGNsYXNzPSJmdW5jX2ciIG9ubW91c2VvdmVy PSJzKHRoaXMpIiBvbm1vdXNlb3V0PSJjKCkiIG9uY2xpY2s9Inpvb20odGhp cykiPgo8dGl0bGU+MjkgKDM0LDgyNiBzYW1wbGVzLCA5OS4yOCUpPC90aXRs ZT48cmVjdCB4PSIxMC4wIiB5PSI4NDkiIHdpZHRoPSIxMTcxLjUiIGhlaWdo dD0iMTUuMCIgZmlsbD0icmdiKDIwNyw5NCwyNSkiIHJ4PSIyIiByeT0iMiIg Lz4KPHRleHQgdGV4dC1hbmNob3I9IiIgeD0iMTMuMDAiIHk9Ijg1OS41IiBm b250LXNpemU9IjEyIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZmlsbD0icmdi KDAsMCwwKSIgID4yOTwvdGV4dD4KPC9nPgo8ZyBjbGFzcz0iZnVuY19nIiBv bm1vdXNlb3Zlcj0icyh0aGlzKSIgb25tb3VzZW91dD0iYygpIiBvbmNsaWNr PSJ6b29tKHRoaXMpIj4KPHRpdGxlPjczICgzNCw4MjYgc2FtcGxlcywgOTku MjglKTwvdGl0bGU+PHJlY3QgeD0iMTAuMCIgeT0iMTQ1IiB3aWR0aD0iMTE3 MS41IiBoZWlnaHQ9IjE1LjAiIGZpbGw9InJnYigyMDYsMjIsNSkiIHJ4PSIy IiByeT0iMiIgLz4KPHRleHQgdGV4dC1hbmNob3I9IiIgeD0iMTMuMDAiIHk9 IjE1NS41IiBmb250LXNpemU9IjEyIiBmb250LWZhbWlseT0iVmVyZGFuYSIg ZmlsbD0icmdiKDAsMCwwKSIgID43MzwvdGV4dD4KPC9nPgo8ZyBjbGFzcz0i ZnVuY19nIiBvbm1vdXNlb3Zlcj0icyh0aGlzKSIgb25tb3VzZW91dD0iYygp IiBvbmNsaWNrPSJ6b29tKHRoaXMpIj4KPHRpdGxlPjMwICgzNCw4MjYgc2Ft cGxlcywgOTkuMjglKTwvdGl0bGU+PHJlY3QgeD0iMTAuMCIgeT0iODMzIiB3 aWR0aD0iMTE3MS41IiBoZWlnaHQ9IjE1LjAiIGZpbGw9InJnYigyMTQsODQs MjkpIiByeD0iMiIgcnk9IjIiIC8+Cjx0ZXh0IHRleHQtYW5jaG9yPSIiIHg9 IjEzLjAwIiB5PSI4NDMuNSIgZm9udC1zaXplPSIxMiIgZm9udC1mYW1pbHk9 IlZlcmRhbmEiIGZpbGw9InJnYigwLDAsMCkiICA+MzA8L3RleHQ+CjwvZz4K PGcgY2xhc3M9ImZ1bmNfZyIgb25tb3VzZW92ZXI9InModGhpcykiIG9ubW91 c2VvdXQ9ImMoKSIgb25jbGljaz0iem9vbSh0aGlzKSI+Cjx0aXRsZT5tYWlu IDM1NjQ0ICg1IHNhbXBsZXMsIDAuMDElKTwvdGl0bGU+PHJlY3QgeD0iMTE4 MS42IiB5PSIxMjY1IiB3aWR0aD0iMC4yIiBoZWlnaHQ9IjE1LjAiIGZpbGw9 InJnYigyNDksMTg4LDcpIiByeD0iMiIgcnk9IjIiIC8+Cjx0ZXh0IHRleHQt YW5jaG9yPSIiIHg9IjExODQuNjIiIHk9IjEyNzUuNSIgZm9udC1zaXplPSIx MiIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZpbGw9InJnYigwLDAsMCkiICA+ PC90ZXh0Pgo8L2c+CjxnIGNsYXNzPSJmdW5jX2ciIG9ubW91c2VvdmVyPSJz KHRoaXMpIiBvbm1vdXNlb3V0PSJjKCkiIG9uY2xpY2s9Inpvb20odGhpcyki Pgo8dGl0bGU+NzYgKDM0LDgyNiBzYW1wbGVzLCA5OS4yOCUpPC90aXRsZT48 cmVjdCB4PSIxMC4wIiB5PSI5NyIgd2lkdGg9IjExNzEuNSIgaGVpZ2h0PSIx NS4wIiBmaWxsPSJyZ2IoMjIzLDQsNykiIHJ4PSIyIiByeT0iMiIgLz4KPHRl eHQgdGV4dC1hbmNob3I9IiIgeD0iMTMuMDAiIHk9IjEwNy41IiBmb250LXNp emU9IjEyIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZmlsbD0icmdiKDAsMCww KSIgID43NjwvdGV4dD4KPC9nPgo8ZyBjbGFzcz0iZnVuY19nIiBvbm1vdXNl b3Zlcj0icyh0aGlzKSIgb25tb3VzZW91dD0iYygpIiBvbmNsaWNrPSJ6b29t KHRoaXMpIj4KPHRpdGxlPjMgKDM0LDgzMSBzYW1wbGVzLCA5OS4yOSUpPC90 aXRsZT48cmVjdCB4PSIxMC4wIiB5PSIxMjY1IiB3aWR0aD0iMTE3MS42IiBo ZWlnaHQ9IjE1LjAiIGZpbGw9InJnYigyNDgsNTIsMjEpIiByeD0iMiIgcnk9 IjIiIC8+Cjx0ZXh0IHRleHQtYW5jaG9yPSIiIHg9IjEzLjAwIiB5PSIxMjc1 LjUiIGZvbnQtc2l6ZT0iMTIiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmaWxs PSJyZ2IoMCwwLDApIiAgPjM8L3RleHQ+CjwvZz4KPGcgY2xhc3M9ImZ1bmNf ZyIgb25tb3VzZW92ZXI9InModGhpcykiIG9ubW91c2VvdXQ9ImMoKSIgb25j bGljaz0iem9vbSh0aGlzKSI+Cjx0aXRsZT4yMyAoMzQsODI2IHNhbXBsZXMs IDk5LjI4JSk8L3RpdGxlPjxyZWN0IHg9IjEwLjAiIHk9Ijk0NSIgd2lkdGg9 IjExNzEuNSIgaGVpZ2h0PSIxNS4wIiBmaWxsPSJyZ2IoMjE1LDU1LDYpIiBy eD0iMiIgcnk9IjIiIC8+Cjx0ZXh0IHRleHQtYW5jaG9yPSIiIHg9IjEzLjAw IiB5PSI5NTUuNSIgZm9udC1zaXplPSIxMiIgZm9udC1mYW1pbHk9IlZlcmRh bmEiIGZpbGw9InJnYigwLDAsMCkiICA+MjM8L3RleHQ+CjwvZz4KPGcgY2xh c3M9ImZ1bmNfZyIgb25tb3VzZW92ZXI9InModGhpcykiIG9ubW91c2VvdXQ9 ImMoKSIgb25jbGljaz0iem9vbSh0aGlzKSI+Cjx0aXRsZT45ICgzNCw4MzEg c2FtcGxlcywgOTkuMjklKTwvdGl0bGU+PHJlY3QgeD0iMTAuMCIgeT0iMTE2 OSIgd2lkdGg9IjExNzEuNiIgaGVpZ2h0PSIxNS4wIiBmaWxsPSJyZ2IoMjM2 LDc2LDEwKSIgcng9IjIiIHJ5PSIyIiAvPgo8dGV4dCB0ZXh0LWFuY2hvcj0i IiB4PSIxMy4wMCIgeT0iMTE3OS41IiBmb250LXNpemU9IjEyIiBmb250LWZh bWlseT0iVmVyZGFuYSIgZmlsbD0icmdiKDAsMCwwKSIgID45PC90ZXh0Pgo8 L2c+CjxnIGNsYXNzPSJmdW5jX2ciIG9ubW91c2VvdmVyPSJzKHRoaXMpIiBv bm1vdXNlb3V0PSJjKCkiIG9uY2xpY2s9Inpvb20odGhpcykiPgo8dGl0bGU+ NjkgKDM0LDgyNiBzYW1wbGVzLCA5OS4yOCUpPC90aXRsZT48cmVjdCB4PSIx MC4wIiB5PSIyMDkiIHdpZHRoPSIxMTcxLjUiIGhlaWdodD0iMTUuMCIgZmls bD0icmdiKDIxOCwxMzMsNTMpIiByeD0iMiIgcnk9IjIiIC8+Cjx0ZXh0IHRl eHQtYW5jaG9yPSIiIHg9IjEzLjAwIiB5PSIyMTkuNSIgZm9udC1zaXplPSIx MiIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZpbGw9InJnYigwLDAsMCkiICA+ Njk8L3RleHQ+CjwvZz4KPGcgY2xhc3M9ImZ1bmNfZyIgb25tb3VzZW92ZXI9 InModGhpcykiIG9ubW91c2VvdXQ9ImMoKSIgb25jbGljaz0iem9vbSh0aGlz KSI+Cjx0aXRsZT4xMCAoMzQsODI2IHNhbXBsZXMsIDk5LjI4JSk8L3RpdGxl PjxyZWN0IHg9IjEwLjAiIHk9IjExNTMiIHdpZHRoPSIxMTcxLjUiIGhlaWdo dD0iMTUuMCIgZmlsbD0icmdiKDIzNSwxMjMsMTMpIiByeD0iMiIgcnk9IjIi IC8+Cjx0ZXh0IHRleHQtYW5jaG9yPSIiIHg9IjEzLjAwIiB5PSIxMTYzLjUi IGZvbnQtc2l6ZT0iMTIiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmaWxsPSJy Z2IoMCwwLDApIiAgPjEwPC90ZXh0Pgo8L2c+CjxnIGNsYXNzPSJmdW5jX2ci IG9ubW91c2VvdmVyPSJzKHRoaXMpIiBvbm1vdXNlb3V0PSJjKCkiIG9uY2xp Y2s9Inpvb20odGhpcykiPgo8dGl0bGU+NzcgKDM0LDgyNiBzYW1wbGVzLCA5 OS4yOCUpPC90aXRsZT48cmVjdCB4PSIxMC4wIiB5PSI4MSIgd2lkdGg9IjEx NzEuNSIgaGVpZ2h0PSIxNS4wIiBmaWxsPSJyZ2IoMjE5LDIwOSwzOCkiIHJ4 PSIyIiByeT0iMiIgLz4KPHRleHQgdGV4dC1hbmNob3I9IiIgeD0iMTMuMDAi IHk9IjkxLjUiIGZvbnQtc2l6ZT0iMTIiIGZvbnQtZmFtaWx5PSJWZXJkYW5h IiBmaWxsPSJyZ2IoMCwwLDApIiAgPjc3PC90ZXh0Pgo8L2c+CjxnIGNsYXNz PSJmdW5jX2ciIG9ubW91c2VvdmVyPSJzKHRoaXMpIiBvbm1vdXNlb3V0PSJj KCkiIG9uY2xpY2s9Inpvb20odGhpcykiPgo8dGl0bGU+NzAgKDM0LDgyNiBz YW1wbGVzLCA5OS4yOCUpPC90aXRsZT48cmVjdCB4PSIxMC4wIiB5PSIxOTMi IHdpZHRoPSIxMTcxLjUiIGhlaWdodD0iMTUuMCIgZmlsbD0icmdiKDIzMCwx NDEsNTEpIiByeD0iMiIgcnk9IjIiIC8+Cjx0ZXh0IHRleHQtYW5jaG9yPSIi IHg9IjEzLjAwIiB5PSIyMDMuNSIgZm9udC1zaXplPSIxMiIgZm9udC1mYW1p bHk9IlZlcmRhbmEiIGZpbGw9InJnYigwLDAsMCkiICA+NzA8L3RleHQ+Cjwv Zz4KPGcgY2xhc3M9ImZ1bmNfZyIgb25tb3VzZW92ZXI9InModGhpcykiIG9u bW91c2VvdXQ9ImMoKSIgb25jbGljaz0iem9vbSh0aGlzKSI+Cjx0aXRsZT4x MSAoMzQsODI2IHNhbXBsZXMsIDk5LjI4JSk8L3RpdGxlPjxyZWN0IHg9IjEw LjAiIHk9IjExMzciIHdpZHRoPSIxMTcxLjUiIGhlaWdodD0iMTUuMCIgZmls bD0icmdiKDI0OSw5MiwxNykiIHJ4PSIyIiByeT0iMiIgLz4KPHRleHQgdGV4 dC1hbmNob3I9IiIgeD0iMTMuMDAiIHk9IjExNDcuNSIgZm9udC1zaXplPSIx MiIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZpbGw9InJnYigwLDAsMCkiICA+ MTE8L3RleHQ+CjwvZz4KPGcgY2xhc3M9ImZ1bmNfZyIgb25tb3VzZW92ZXI9 InModGhpcykiIG9ubW91c2VvdXQ9ImMoKSIgb25jbGljaz0iem9vbSh0aGlz KSI+Cjx0aXRsZT40NyAoMzQsODI2IHNhbXBsZXMsIDk5LjI4JSk8L3RpdGxl PjxyZWN0IHg9IjEwLjAiIHk9IjU2MSIgd2lkdGg9IjExNzEuNSIgaGVpZ2h0 PSIxNS4wIiBmaWxsPSJyZ2IoMjA4LDI3LDM0KSIgcng9IjIiIHJ5PSIyIiAv Pgo8dGV4dCB0ZXh0LWFuY2hvcj0iIiB4PSIxMy4wMCIgeT0iNTcxLjUiIGZv bnQtc2l6ZT0iMTIiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmaWxsPSJyZ2Io MCwwLDApIiAgPjQ3PC90ZXh0Pgo8L2c+CjxnIGNsYXNzPSJmdW5jX2ciIG9u bW91c2VvdmVyPSJzKHRoaXMpIiBvbm1vdXNlb3V0PSJjKCkiIG9uY2xpY2s9 Inpvb20odGhpcykiPgo8dGl0bGU+NzQgKDM0LDgyNiBzYW1wbGVzLCA5OS4y OCUpPC90aXRsZT48cmVjdCB4PSIxMC4wIiB5PSIxMjkiIHdpZHRoPSIxMTcx LjUiIGhlaWdodD0iMTUuMCIgZmlsbD0icmdiKDI0OSwyMDIsMjcpIiByeD0i MiIgcnk9IjIiIC8+Cjx0ZXh0IHRleHQtYW5jaG9yPSIiIHg9IjEzLjAwIiB5 PSIxMzkuNSIgZm9udC1zaXplPSIxMiIgZm9udC1mYW1pbHk9IlZlcmRhbmEi IGZpbGw9InJnYigwLDAsMCkiICA+NzQ8L3RleHQ+CjwvZz4KPGcgY2xhc3M9 ImZ1bmNfZyIgb25tb3VzZW92ZXI9InModGhpcykiIG9ubW91c2VvdXQ9ImMo KSIgb25jbGljaz0iem9vbSh0aGlzKSI+Cjx0aXRsZT5tYWluIDMwMjA4ICgx NyBzYW1wbGVzLCAwLjA1JSk8L3RpdGxlPjxyZWN0IHg9IjExODMuNCIgeT0i MTI4MSIgd2lkdGg9IjAuNSIgaGVpZ2h0PSIxNS4wIiBmaWxsPSJyZ2IoMjM4 LDIwNiw0MSkiIHJ4PSIyIiByeT0iMiIgLz4KPHRleHQgdGV4dC1hbmNob3I9 IiIgeD0iMTE4Ni4zNyIgeT0iMTI5MS41IiBmb250LXNpemU9IjEyIiBmb250 LWZhbWlseT0iVmVyZGFuYSIgZmlsbD0icmdiKDAsMCwwKSIgID48L3RleHQ+ CjwvZz4KPGcgY2xhc3M9ImZ1bmNfZyIgb25tb3VzZW92ZXI9InModGhpcyki IG9ubW91c2VvdXQ9ImMoKSIgb25jbGljaz0iem9vbSh0aGlzKSI+Cjx0aXRs ZT43OSAoMzQsODI2IHNhbXBsZXMsIDk5LjI4JSk8L3RpdGxlPjxyZWN0IHg9 IjEwLjAiIHk9IjQ5IiB3aWR0aD0iMTE3MS41IiBoZWlnaHQ9IjE1LjAiIGZp bGw9InJnYigyMTQsMTM2LDQ3KSIgcng9IjIiIHJ5PSIyIiAvPgo8dGV4dCB0 ZXh0LWFuY2hvcj0iIiB4PSIxMy4wMCIgeT0iNTkuNSIgZm9udC1zaXplPSIx MiIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZpbGw9InJnYigwLDAsMCkiICA+ Nzk8L3RleHQ+CjwvZz4KPGcgY2xhc3M9ImZ1bmNfZyIgb25tb3VzZW92ZXI9 InModGhpcykiIG9ubW91c2VvdXQ9ImMoKSIgb25jbGljaz0iem9vbSh0aGlz KSI+Cjx0aXRsZT5tYWluIDU3ODI0ICg5IHNhbXBsZXMsIDAuMDMlKTwvdGl0 bGU+PHJlY3QgeD0iMTE4NS4xIiB5PSIxMjgxIiB3aWR0aD0iMC4zIiBoZWln aHQ9IjE1LjAiIGZpbGw9InJnYigyMTMsNSwzOSkiIHJ4PSIyIiByeT0iMiIg Lz4KPHRleHQgdGV4dC1hbmNob3I9IiIgeD0iMTE4OC4wOSIgeT0iMTI5MS41 IiBmb250LXNpemU9IjEyIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZmlsbD0i cmdiKDAsMCwwKSIgID48L3RleHQ+CjwvZz4KPGcgY2xhc3M9ImZ1bmNfZyIg b25tb3VzZW92ZXI9InModGhpcykiIG9ubW91c2VvdXQ9ImMoKSIgb25jbGlj az0iem9vbSh0aGlzKSI+Cjx0aXRsZT5tYWluIDg0ODY5OTYgKDI1IHNhbXBs ZXMsIDAuMDclKTwvdGl0bGU+PHJlY3QgeD0iMTE4OC4xIiB5PSIxMjgxIiB3 aWR0aD0iMC45IiBoZWlnaHQ9IjE1LjAiIGZpbGw9InJnYigyMzAsNjEsMzkp IiByeD0iMiIgcnk9IjIiIC8+Cjx0ZXh0IHRleHQtYW5jaG9yPSIiIHg9IjEx OTEuMTUiIHk9IjEyOTEuNSIgZm9udC1zaXplPSIxMiIgZm9udC1mYW1pbHk9 IlZlcmRhbmEiIGZpbGw9InJnYigwLDAsMCkiICA+PC90ZXh0Pgo8L2c+Cjxn IGNsYXNzPSJmdW5jX2ciIG9ubW91c2VvdmVyPSJzKHRoaXMpIiBvbm1vdXNl b3V0PSJjKCkiIG9uY2xpY2s9Inpvb20odGhpcykiPgo8dGl0bGU+MTQgKDM0 LDgyNiBzYW1wbGVzLCA5OS4yOCUpPC90aXRsZT48cmVjdCB4PSIxMC4wIiB5 PSIxMDg5IiB3aWR0aD0iMTE3MS41IiBoZWlnaHQ9IjE1LjAiIGZpbGw9InJn YigyNDUsMTMwLDU0KSIgcng9IjIiIHJ5PSIyIiAvPgo8dGV4dCB0ZXh0LWFu Y2hvcj0iIiB4PSIxMy4wMCIgeT0iMTA5OS41IiBmb250LXNpemU9IjEyIiBm b250LWZhbWlseT0iVmVyZGFuYSIgZmlsbD0icmdiKDAsMCwwKSIgID4xNDwv dGV4dD4KPC9nPgo8ZyBjbGFzcz0iZnVuY19nIiBvbm1vdXNlb3Zlcj0icyh0 aGlzKSIgb25tb3VzZW91dD0iYygpIiBvbmNsaWNrPSJ6b29tKHRoaXMpIj4K PHRpdGxlPjIyICgzNCw4MjYgc2FtcGxlcywgOTkuMjglKTwvdGl0bGU+PHJl Y3QgeD0iMTAuMCIgeT0iOTYxIiB3aWR0aD0iMTE3MS41IiBoZWlnaHQ9IjE1 LjAiIGZpbGw9InJnYigyMjcsMjA5LDIxKSIgcng9IjIiIHJ5PSIyIiAvPgo8 dGV4dCB0ZXh0LWFuY2hvcj0iIiB4PSIxMy4wMCIgeT0iOTcxLjUiIGZvbnQt c2l6ZT0iMTIiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmaWxsPSJyZ2IoMCww LDApIiAgPjIyPC90ZXh0Pgo8L2c+CjxnIGNsYXNzPSJmdW5jX2ciIG9ubW91 c2VvdmVyPSJzKHRoaXMpIiBvbm1vdXNlb3V0PSJjKCkiIG9uY2xpY2s9Inpv b20odGhpcykiPgo8dGl0bGU+MjEgKDM0LDgyNiBzYW1wbGVzLCA5OS4yOCUp PC90aXRsZT48cmVjdCB4PSIxMC4wIiB5PSI5NzciIHdpZHRoPSIxMTcxLjUi IGhlaWdodD0iMTUuMCIgZmlsbD0icmdiKDI0NSw4NywyOCkiIHJ4PSIyIiBy eT0iMiIgLz4KPHRleHQgdGV4dC1hbmNob3I9IiIgeD0iMTMuMDAiIHk9Ijk4 Ny41IiBmb250LXNpemU9IjEyIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZmls bD0icmdiKDAsMCwwKSIgID4yMTwvdGV4dD4KPC9nPgo8ZyBjbGFzcz0iZnVu Y19nIiBvbm1vdXNlb3Zlcj0icyh0aGlzKSIgb25tb3VzZW91dD0iYygpIiBv bmNsaWNrPSJ6b29tKHRoaXMpIj4KPHRpdGxlPm1haW4gNjIzMDk3NCAoMzMg c2FtcGxlcywgMC4wOSUpPC90aXRsZT48cmVjdCB4PSIxMTg1LjkiIHk9IjEy ODEiIHdpZHRoPSIxLjEiIGhlaWdodD0iMTUuMCIgZmlsbD0icmdiKDI0MCwy MDYsMzYpIiByeD0iMiIgcnk9IjIiIC8+Cjx0ZXh0IHRleHQtYW5jaG9yPSIi IHg9IjExODguODYiIHk9IjEyOTEuNSIgZm9udC1zaXplPSIxMiIgZm9udC1m YW1pbHk9IlZlcmRhbmEiIGZpbGw9InJnYigwLDAsMCkiICA+PC90ZXh0Pgo8 L2c+CjxnIGNsYXNzPSJmdW5jX2ciIG9ubW91c2VvdmVyPSJzKHRoaXMpIiBv bm1vdXNlb3V0PSJjKCkiIG9uY2xpY2s9Inpvb20odGhpcykiPgo8dGl0bGU+ MTIgKDM0LDgyNiBzYW1wbGVzLCA5OS4yOCUpPC90aXRsZT48cmVjdCB4PSIx MC4wIiB5PSIxMTIxIiB3aWR0aD0iMTE3MS41IiBoZWlnaHQ9IjE1LjAiIGZp bGw9InJnYigyMzYsMjcsMzEpIiByeD0iMiIgcnk9IjIiIC8+Cjx0ZXh0IHRl eHQtYW5jaG9yPSIiIHg9IjEzLjAwIiB5PSIxMTMxLjUiIGZvbnQtc2l6ZT0i MTIiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmaWxsPSJyZ2IoMCwwLDApIiAg PjEyPC90ZXh0Pgo8L2c+CjxnIGNsYXNzPSJmdW5jX2ciIG9ubW91c2VvdmVy PSJzKHRoaXMpIiBvbm1vdXNlb3V0PSJjKCkiIG9uY2xpY2s9Inpvb20odGhp cykiPgo8dGl0bGU+MTMgKDM0LDgyNiBzYW1wbGVzLCA5OS4yOCUpPC90aXRs ZT48cmVjdCB4PSIxMC4wIiB5PSIxMTA1IiB3aWR0aD0iMTE3MS41IiBoZWln aHQ9IjE1LjAiIGZpbGw9InJnYigyNTMsMywxNykiIHJ4PSIyIiByeT0iMiIg Lz4KPHRleHQgdGV4dC1hbmNob3I9IiIgeD0iMTMuMDAiIHk9IjExMTUuNSIg Zm9udC1zaXplPSIxMiIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZpbGw9InJn YigwLDAsMCkiICA+MTM8L3RleHQ+CjwvZz4KPGcgY2xhc3M9ImZ1bmNfZyIg b25tb3VzZW92ZXI9InModGhpcykiIG9ubW91c2VvdXQ9ImMoKSIgb25jbGlj az0iem9vbSh0aGlzKSI+Cjx0aXRsZT5tYWluIDk4MzY3ODQgKDI4IHNhbXBs ZXMsIDAuMDglKTwvdGl0bGU+PHJlY3QgeD0iMTE4OS4xIiB5PSIxMjgxIiB3 aWR0aD0iMC45IiBoZWlnaHQ9IjE1LjAiIGZpbGw9InJnYigyNDUsMTQ3LDEz KSIgcng9IjIiIHJ5PSIyIiAvPgo8dGV4dCB0ZXh0LWFuY2hvcj0iIiB4PSIx MTkyLjA2IiB5PSIxMjkxLjUiIGZvbnQtc2l6ZT0iMTIiIGZvbnQtZmFtaWx5 PSJWZXJkYW5hIiBmaWxsPSJyZ2IoMCwwLDApIiAgPjwvdGV4dD4KPC9nPgo8 ZyBjbGFzcz0iZnVuY19nIiBvbm1vdXNlb3Zlcj0icyh0aGlzKSIgb25tb3Vz ZW91dD0iYygpIiBvbmNsaWNrPSJ6b29tKHRoaXMpIj4KPHRpdGxlPjY1ICgz NCw4MjYgc2FtcGxlcywgOTkuMjglKTwvdGl0bGU+PHJlY3QgeD0iMTAuMCIg eT0iMjczIiB3aWR0aD0iMTE3MS41IiBoZWlnaHQ9IjE1LjAiIGZpbGw9InJn YigyMzgsNSwyMCkiIHJ4PSIyIiByeT0iMiIgLz4KPHRleHQgdGV4dC1hbmNo b3I9IiIgeD0iMTMuMDAiIHk9IjI4My41IiBmb250LXNpemU9IjEyIiBmb250 LWZhbWlseT0iVmVyZGFuYSIgZmlsbD0icmdiKDAsMCwwKSIgID42NTwvdGV4 dD4KPC9nPgo8ZyBjbGFzcz0iZnVuY19nIiBvbm1vdXNlb3Zlcj0icyh0aGlz KSIgb25tb3VzZW91dD0iYygpIiBvbmNsaWNrPSJ6b29tKHRoaXMpIj4KPHRp dGxlPjM5ICgzNCw4MjYgc2FtcGxlcywgOTkuMjglKTwvdGl0bGU+PHJlY3Qg eD0iMTAuMCIgeT0iNjg5IiB3aWR0aD0iMTE3MS41IiBoZWlnaHQ9IjE1LjAi IGZpbGw9InJnYigyMjQsMTAzLDYpIiByeD0iMiIgcnk9IjIiIC8+Cjx0ZXh0 IHRleHQtYW5jaG9yPSIiIHg9IjEzLjAwIiB5PSI2OTkuNSIgZm9udC1zaXpl PSIxMiIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZpbGw9InJnYigwLDAsMCki ICA+Mzk8L3RleHQ+CjwvZz4KPGcgY2xhc3M9ImZ1bmNfZyIgb25tb3VzZW92 ZXI9InModGhpcykiIG9ubW91c2VvdXQ9ImMoKSIgb25jbGljaz0iem9vbSh0 aGlzKSI+Cjx0aXRsZT4xNiAoMzQsODI2IHNhbXBsZXMsIDk5LjI4JSk8L3Rp dGxlPjxyZWN0IHg9IjEwLjAiIHk9IjEwNTciIHdpZHRoPSIxMTcxLjUiIGhl aWdodD0iMTUuMCIgZmlsbD0icmdiKDI1MSw1NywzNCkiIHJ4PSIyIiByeT0i MiIgLz4KPHRleHQgdGV4dC1hbmNob3I9IiIgeD0iMTMuMDAiIHk9IjEwNjcu NSIgZm9udC1zaXplPSIxMiIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZpbGw9 InJnYigwLDAsMCkiICA+MTY8L3RleHQ+CjwvZz4KPGcgY2xhc3M9ImZ1bmNf ZyIgb25tb3VzZW92ZXI9InModGhpcykiIG9ubW91c2VvdXQ9ImMoKSIgb25j bGljaz0iem9vbSh0aGlzKSI+Cjx0aXRsZT41NSAoMzQsODI2IHNhbXBsZXMs IDk5LjI4JSk8L3RpdGxlPjxyZWN0IHg9IjEwLjAiIHk9IjQzMyIgd2lkdGg9 IjExNzEuNSIgaGVpZ2h0PSIxNS4wIiBmaWxsPSJyZ2IoMjIwLDIyNCw1KSIg cng9IjIiIHJ5PSIyIiAvPgo8dGV4dCB0ZXh0LWFuY2hvcj0iIiB4PSIxMy4w MCIgeT0iNDQzLjUiIGZvbnQtc2l6ZT0iMTIiIGZvbnQtZmFtaWx5PSJWZXJk YW5hIiBmaWxsPSJyZ2IoMCwwLDApIiAgPjU1PC90ZXh0Pgo8L2c+CjxnIGNs YXNzPSJmdW5jX2ciIG9ubW91c2VvdmVyPSJzKHRoaXMpIiBvbm1vdXNlb3V0 PSJjKCkiIG9uY2xpY2s9Inpvb20odGhpcykiPgo8dGl0bGU+bWFpbiAxMDky ODA3MiAoMjMgc2FtcGxlcywgMC4wNyUpPC90aXRsZT48cmVjdCB4PSIxMTgx LjgiIHk9IjEyODEiIHdpZHRoPSIwLjgiIGhlaWdodD0iMTUuMCIgZmlsbD0i cmdiKDIyMCw0MCw1MykiIHJ4PSIyIiByeT0iMiIgLz4KPHRleHQgdGV4dC1h bmNob3I9IiIgeD0iMTE4NC43OSIgeT0iMTI5MS41IiBmb250LXNpemU9IjEy IiBmb250LWZhbWlseT0iVmVyZGFuYSIgZmlsbD0icmdiKDAsMCwwKSIgID48 L3RleHQ+CjwvZz4KPGcgY2xhc3M9ImZ1bmNfZyIgb25tb3VzZW92ZXI9InMo dGhpcykiIG9ubW91c2VvdXQ9ImMoKSIgb25jbGljaz0iem9vbSh0aGlzKSI+ Cjx0aXRsZT43MiAoMzQsODI2IHNhbXBsZXMsIDk5LjI4JSk8L3RpdGxlPjxy ZWN0IHg9IjEwLjAiIHk9IjE2MSIgd2lkdGg9IjExNzEuNSIgaGVpZ2h0PSIx NS4wIiBmaWxsPSJyZ2IoMjA2LDE2MCw0OCkiIHJ4PSIyIiByeT0iMiIgLz4K PHRleHQgdGV4dC1hbmNob3I9IiIgeD0iMTMuMDAiIHk9IjE3MS41IiBmb250 LXNpemU9IjEyIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZmlsbD0icmdiKDAs MCwwKSIgID43MjwvdGV4dD4KPC9nPgo8ZyBjbGFzcz0iZnVuY19nIiBvbm1v dXNlb3Zlcj0icyh0aGlzKSIgb25tb3VzZW91dD0iYygpIiBvbmNsaWNrPSJ6 b29tKHRoaXMpIj4KPHRpdGxlPjY0ICgzNCw4MjYgc2FtcGxlcywgOTkuMjgl KTwvdGl0bGU+PHJlY3QgeD0iMTAuMCIgeT0iMjg5IiB3aWR0aD0iMTE3MS41 IiBoZWlnaHQ9IjE1LjAiIGZpbGw9InJnYigyMzEsMjE1LDI0KSIgcng9IjIi IHJ5PSIyIiAvPgo8dGV4dCB0ZXh0LWFuY2hvcj0iIiB4PSIxMy4wMCIgeT0i Mjk5LjUiIGZvbnQtc2l6ZT0iMTIiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBm aWxsPSJyZ2IoMCwwLDApIiAgPjY0PC90ZXh0Pgo8L2c+CjxnIGNsYXNzPSJm dW5jX2ciIG9ubW91c2VvdmVyPSJzKHRoaXMpIiBvbm1vdXNlb3V0PSJjKCki IG9uY2xpY2s9Inpvb20odGhpcykiPgo8dGl0bGU+NjcgKDM0LDgyNiBzYW1w bGVzLCA5OS4yOCUpPC90aXRsZT48cmVjdCB4PSIxMC4wIiB5PSIyNDEiIHdp ZHRoPSIxMTcxLjUiIGhlaWdodD0iMTUuMCIgZmlsbD0icmdiKDI1MiwxMCw0 NikiIHJ4PSIyIiByeT0iMiIgLz4KPHRleHQgdGV4dC1hbmNob3I9IiIgeD0i MTMuMDAiIHk9IjI1MS41IiBmb250LXNpemU9IjEyIiBmb250LWZhbWlseT0i VmVyZGFuYSIgZmlsbD0icmdiKDAsMCwwKSIgID42NzwvdGV4dD4KPC9nPgo8 ZyBjbGFzcz0iZnVuY19nIiBvbm1vdXNlb3Zlcj0icyh0aGlzKSIgb25tb3Vz ZW91dD0iYygpIiBvbmNsaWNrPSJ6b29tKHRoaXMpIj4KPHRpdGxlPm1haW4g NzAzNjA4NCAoMjAgc2FtcGxlcywgMC4wNiUpPC90aXRsZT48cmVjdCB4PSIx MTg3LjAiIHk9IjEyODEiIHdpZHRoPSIwLjYiIGhlaWdodD0iMTUuMCIgZmls bD0icmdiKDIxOSwyMDAsNTQpIiByeD0iMiIgcnk9IjIiIC8+Cjx0ZXh0IHRl eHQtYW5jaG9yPSIiIHg9IjExODkuOTciIHk9IjEyOTEuNSIgZm9udC1zaXpl PSIxMiIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZpbGw9InJnYigwLDAsMCki ICA+PC90ZXh0Pgo8L2c+CjxnIGNsYXNzPSJmdW5jX2ciIG9ubW91c2VvdmVy PSJzKHRoaXMpIiBvbm1vdXNlb3V0PSJjKCkiIG9uY2xpY2s9Inpvb20odGhp cykiPgo8dGl0bGU+NjYgKDM0LDgyNiBzYW1wbGVzLCA5OS4yOCUpPC90aXRs ZT48cmVjdCB4PSIxMC4wIiB5PSIyNTciIHdpZHRoPSIxMTcxLjUiIGhlaWdo dD0iMTUuMCIgZmlsbD0icmdiKDI1NCwyMjksMzYpIiByeD0iMiIgcnk9IjIi IC8+Cjx0ZXh0IHRleHQtYW5jaG9yPSIiIHg9IjEzLjAwIiB5PSIyNjcuNSIg Zm9udC1zaXplPSIxMiIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZpbGw9InJn YigwLDAsMCkiICA+NjY8L3RleHQ+CjwvZz4KPGcgY2xhc3M9ImZ1bmNfZyIg b25tb3VzZW92ZXI9InModGhpcykiIG9ubW91c2VvdXQ9ImMoKSIgb25jbGlj az0iem9vbSh0aGlzKSI+Cjx0aXRsZT4xNyAoMzQsODI2IHNhbXBsZXMsIDk5 LjI4JSk8L3RpdGxlPjxyZWN0IHg9IjEwLjAiIHk9IjEwNDEiIHdpZHRoPSIx MTcxLjUiIGhlaWdodD0iMTUuMCIgZmlsbD0icmdiKDIwNiw1NCwzMSkiIHJ4 PSIyIiByeT0iMiIgLz4KPHRleHQgdGV4dC1hbmNob3I9IiIgeD0iMTMuMDAi IHk9IjEwNTEuNSIgZm9udC1zaXplPSIxMiIgZm9udC1mYW1pbHk9IlZlcmRh bmEiIGZpbGw9InJnYigwLDAsMCkiICA+MTc8L3RleHQ+CjwvZz4KPGcgY2xh c3M9ImZ1bmNfZyIgb25tb3VzZW92ZXI9InModGhpcykiIG9ubW91c2VvdXQ9 ImMoKSIgb25jbGljaz0iem9vbSh0aGlzKSI+Cjx0aXRsZT41NiAoMzQsODI2 IHNhbXBsZXMsIDk5LjI4JSk8L3RpdGxlPjxyZWN0IHg9IjEwLjAiIHk9IjQx NyIgd2lkdGg9IjExNzEuNSIgaGVpZ2h0PSIxNS4wIiBmaWxsPSJyZ2IoMjQ3 LDk5LDIpIiByeD0iMiIgcnk9IjIiIC8+Cjx0ZXh0IHRleHQtYW5jaG9yPSIi IHg9IjEzLjAwIiB5PSI0MjcuNSIgZm9udC1zaXplPSIxMiIgZm9udC1mYW1p bHk9IlZlcmRhbmEiIGZpbGw9InJnYigwLDAsMCkiICA+NTY8L3RleHQ+Cjwv Zz4KPGcgY2xhc3M9ImZ1bmNfZyIgb25tb3VzZW92ZXI9InModGhpcykiIG9u bW91c2VvdXQ9ImMoKSIgb25jbGljaz0iem9vbSh0aGlzKSI+Cjx0aXRsZT40 OCAoMzQsODI2IHNhbXBsZXMsIDk5LjI4JSk8L3RpdGxlPjxyZWN0IHg9IjEw LjAiIHk9IjU0NSIgd2lkdGg9IjExNzEuNSIgaGVpZ2h0PSIxNS4wIiBmaWxs PSJyZ2IoMjEzLDE5NSwxMykiIHJ4PSIyIiByeT0iMiIgLz4KPHRleHQgdGV4 dC1hbmNob3I9IiIgeD0iMTMuMDAiIHk9IjU1NS41IiBmb250LXNpemU9IjEy IiBmb250LWZhbWlseT0iVmVyZGFuYSIgZmlsbD0icmdiKDAsMCwwKSIgID40 ODwvdGV4dD4KPC9nPgo8ZyBjbGFzcz0iZnVuY19nIiBvbm1vdXNlb3Zlcj0i cyh0aGlzKSIgb25tb3VzZW91dD0iYygpIiBvbmNsaWNrPSJ6b29tKHRoaXMp Ij4KPHRpdGxlPm1haW4gNjExMTYgKDEyIHNhbXBsZXMsIDAuMDMlKTwvdGl0 bGU+PHJlY3QgeD0iMTE4NS41IiB5PSIxMjgxIiB3aWR0aD0iMC40IiBoZWln aHQ9IjE1LjAiIGZpbGw9InJnYigyNDAsMTQ2LDMyKSIgcng9IjIiIHJ5PSIy IiAvPgo8dGV4dCB0ZXh0LWFuY2hvcj0iIiB4PSIxMTg4LjQ2IiB5PSIxMjkx LjUiIGZvbnQtc2l6ZT0iMTIiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmaWxs PSJyZ2IoMCwwLDApIiAgPjwvdGV4dD4KPC9nPgo8ZyBjbGFzcz0iZnVuY19n IiBvbm1vdXNlb3Zlcj0icyh0aGlzKSIgb25tb3VzZW91dD0iYygpIiBvbmNs aWNrPSJ6b29tKHRoaXMpIj4KPHRpdGxlPldBTFdyaXRlTG9jayAoNSBzYW1w bGVzLCAwLjAxJSk8L3RpdGxlPjxyZWN0IHg9IjExODEuNSIgeT0iMTE1MyIg d2lkdGg9IjAuMSIgaGVpZ2h0PSIxNS4wIiBmaWxsPSJyZ2IoMjMwLDE0MCwy MikiIHJ4PSIyIiByeT0iMiIgLz4KPHRleHQgdGV4dC1hbmNob3I9IiIgeD0i MTE4NC40NiIgeT0iMTE2My41IiBmb250LXNpemU9IjEyIiBmb250LWZhbWls eT0iVmVyZGFuYSIgZmlsbD0icmdiKDAsMCwwKSIgID48L3RleHQ+CjwvZz4K PGcgY2xhc3M9ImZ1bmNfZyIgb25tb3VzZW92ZXI9InModGhpcykiIG9ubW91 c2VvdXQ9ImMoKSIgb25jbGljaz0iem9vbSh0aGlzKSI+Cjx0aXRsZT42MyAo MzQsODI2IHNhbXBsZXMsIDk5LjI4JSk8L3RpdGxlPjxyZWN0IHg9IjEwLjAi IHk9IjMwNSIgd2lkdGg9IjExNzEuNSIgaGVpZ2h0PSIxNS4wIiBmaWxsPSJy Z2IoMjQ3LDIyOSwyMSkiIHJ4PSIyIiByeT0iMiIgLz4KPHRleHQgdGV4dC1h bmNob3I9IiIgeD0iMTMuMDAiIHk9IjMxNS41IiBmb250LXNpemU9IjEyIiBm b250LWZhbWlseT0iVmVyZGFuYSIgZmlsbD0icmdiKDAsMCwwKSIgID42Mzwv dGV4dD4KPC9nPgo8ZyBjbGFzcz0iZnVuY19nIiBvbm1vdXNlb3Zlcj0icyh0 aGlzKSIgb25tb3VzZW91dD0iYygpIiBvbmNsaWNrPSJ6b29tKHRoaXMpIj4K PHRpdGxlPm1haW4gNzMxNzQgKDUgc2FtcGxlcywgMC4wMSUpPC90aXRsZT48 cmVjdCB4PSIxMTg3LjciIHk9IjEyODEiIHdpZHRoPSIwLjEiIGhlaWdodD0i MTUuMCIgZmlsbD0icmdiKDI0OCwxNzAsMTEpIiByeD0iMiIgcnk9IjIiIC8+ Cjx0ZXh0IHRleHQtYW5jaG9yPSIiIHg9IjExOTAuNjgiIHk9IjEyOTEuNSIg Zm9udC1zaXplPSIxMiIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZpbGw9InJn YigwLDAsMCkiICA+PC90ZXh0Pgo8L2c+CjxnIGNsYXNzPSJmdW5jX2ciIG9u bW91c2VvdmVyPSJzKHRoaXMpIiBvbm1vdXNlb3V0PSJjKCkiIG9uY2xpY2s9 Inpvb20odGhpcykiPgo8dGl0bGU+NjggKDM0LDgyNiBzYW1wbGVzLCA5OS4y OCUpPC90aXRsZT48cmVjdCB4PSIxMC4wIiB5PSIyMjUiIHdpZHRoPSIxMTcx LjUiIGhlaWdodD0iMTUuMCIgZmlsbD0icmdiKDIzOSwyMjIsMTEpIiByeD0i MiIgcnk9IjIiIC8+Cjx0ZXh0IHRleHQtYW5jaG9yPSIiIHg9IjEzLjAwIiB5 PSIyMzUuNSIgZm9udC1zaXplPSIxMiIgZm9udC1mYW1pbHk9IlZlcmRhbmEi IGZpbGw9InJnYigwLDAsMCkiICA+Njg8L3RleHQ+CjwvZz4KPGcgY2xhc3M9 ImZ1bmNfZyIgb25tb3VzZW92ZXI9InModGhpcykiIG9ubW91c2VvdXQ9ImMo KSIgb25jbGljaz0iem9vbSh0aGlzKSI+Cjx0aXRsZT4yOCAoMzQsODI2IHNh bXBsZXMsIDk5LjI4JSk8L3RpdGxlPjxyZWN0IHg9IjEwLjAiIHk9Ijg2NSIg d2lkdGg9IjExNzEuNSIgaGVpZ2h0PSIxNS4wIiBmaWxsPSJyZ2IoMjEwLDcw LDM2KSIgcng9IjIiIHJ5PSIyIiAvPgo8dGV4dCB0ZXh0LWFuY2hvcj0iIiB4 PSIxMy4wMCIgeT0iODc1LjUiIGZvbnQtc2l6ZT0iMTIiIGZvbnQtZmFtaWx5 PSJWZXJkYW5hIiBmaWxsPSJyZ2IoMCwwLDApIiAgPjI4PC90ZXh0Pgo8L2c+ CjxnIGNsYXNzPSJmdW5jX2ciIG9ubW91c2VvdmVyPSJzKHRoaXMpIiBvbm1v dXNlb3V0PSJjKCkiIG9uY2xpY2s9Inpvb20odGhpcykiPgo8dGl0bGU+bWFp biAxNDk1NzYgKDQgc2FtcGxlcywgMC4wMSUpPC90aXRsZT48cmVjdCB4PSIx MTgyLjYiIHk9IjEyODEiIHdpZHRoPSIwLjEiIGhlaWdodD0iMTUuMCIgZmls bD0icmdiKDIwNiwxOTAsMikiIHJ4PSIyIiByeT0iMiIgLz4KPHRleHQgdGV4 dC1hbmNob3I9IiIgeD0iMTE4NS41NyIgeT0iMTI5MS41IiBmb250LXNpemU9 IjEyIiBmb250LWZhbWlseT0iVmVyZGFuYSIgZmlsbD0icmdiKDAsMCwwKSIg ID48L3RleHQ+CjwvZz4KPGcgY2xhc3M9ImZ1bmNfZyIgb25tb3VzZW92ZXI9 InModGhpcykiIG9ubW91c2VvdXQ9ImMoKSIgb25jbGljaz0iem9vbSh0aGlz KSI+Cjx0aXRsZT5hbGwgKDM1LDA4MCBzYW1wbGVzLCAxMDAlKTwvdGl0bGU+ PHJlY3QgeD0iMTAuMCIgeT0iMTMyOSIgd2lkdGg9IjExODAuMCIgaGVpZ2h0 PSIxNS4wIiBmaWxsPSJyZ2IoMjA4LDExNiwyNikiIHJ4PSIyIiByeT0iMiIg Lz4KPHRleHQgdGV4dC1hbmNob3I9IiIgeD0iMTMuMDAiIHk9IjEzMzkuNSIg Zm9udC1zaXplPSIxMiIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZpbGw9InJn YigwLDAsMCkiICA+PC90ZXh0Pgo8L2c+CjxnIGNsYXNzPSJmdW5jX2ciIG9u bW91c2VvdmVyPSJzKHRoaXMpIiBvbm1vdXNlb3V0PSJjKCkiIG9uY2xpY2s9 Inpvb20odGhpcykiPgo8dGl0bGU+NyAoMzQsODMxIHNhbXBsZXMsIDk5LjI5 JSk8L3RpdGxlPjxyZWN0IHg9IjEwLjAiIHk9IjEyMDEiIHdpZHRoPSIxMTcx LjYiIGhlaWdodD0iMTUuMCIgZmlsbD0icmdiKDIzMCwxNzgsNDApIiByeD0i MiIgcnk9IjIiIC8+Cjx0ZXh0IHRleHQtYW5jaG9yPSIiIHg9IjEzLjAwIiB5 PSIxMjExLjUiIGZvbnQtc2l6ZT0iMTIiIGZvbnQtZmFtaWx5PSJWZXJkYW5h IiBmaWxsPSJyZ2IoMCwwLDApIiAgPjc8L3RleHQ+CjwvZz4KPGcgY2xhc3M9 ImZ1bmNfZyIgb25tb3VzZW92ZXI9InModGhpcykiIG9ubW91c2VvdXQ9ImMo KSIgb25jbGljaz0iem9vbSh0aGlzKSI+Cjx0aXRsZT41MCAoMzQsODI2IHNh bXBsZXMsIDk5LjI4JSk8L3RpdGxlPjxyZWN0IHg9IjEwLjAiIHk9IjUxMyIg d2lkdGg9IjExNzEuNSIgaGVpZ2h0PSIxNS4wIiBmaWxsPSJyZ2IoMjE0LDcx LDI0KSIgcng9IjIiIHJ5PSIyIiAvPgo8dGV4dCB0ZXh0LWFuY2hvcj0iIiB4 PSIxMy4wMCIgeT0iNTIzLjUiIGZvbnQtc2l6ZT0iMTIiIGZvbnQtZmFtaWx5 PSJWZXJkYW5hIiBmaWxsPSJyZ2IoMCwwLDApIiAgPjUwPC90ZXh0Pgo8L2c+ CjxnIGNsYXNzPSJmdW5jX2ciIG9ubW91c2VvdmVyPSJzKHRoaXMpIiBvbm1v dXNlb3V0PSJjKCkiIG9uY2xpY2s9Inpvb20odGhpcykiPgo8dGl0bGU+NDQg KDM0LDgyNiBzYW1wbGVzLCA5OS4yOCUpPC90aXRsZT48cmVjdCB4PSIxMC4w IiB5PSI2MDkiIHdpZHRoPSIxMTcxLjUiIGhlaWdodD0iMTUuMCIgZmlsbD0i cmdiKDIwNSwzMSw0MikiIHJ4PSIyIiByeT0iMiIgLz4KPHRleHQgdGV4dC1h bmNob3I9IiIgeD0iMTMuMDAiIHk9IjYxOS41IiBmb250LXNpemU9IjEyIiBm b250LWZhbWlseT0iVmVyZGFuYSIgZmlsbD0icmdiKDAsMCwwKSIgID40NDwv dGV4dD4KPC9nPgo8ZyBjbGFzcz0iZnVuY19nIiBvbm1vdXNlb3Zlcj0icyh0 aGlzKSIgb25tb3VzZW91dD0iYygpIiBvbmNsaWNrPSJ6b29tKHRoaXMpIj4K PHRpdGxlPjQxICgzNCw4MjYgc2FtcGxlcywgOTkuMjglKTwvdGl0bGU+PHJl Y3QgeD0iMTAuMCIgeT0iNjU3IiB3aWR0aD0iMTE3MS41IiBoZWlnaHQ9IjE1 LjAiIGZpbGw9InJnYigyNDAsNDIsNDgpIiByeD0iMiIgcnk9IjIiIC8+Cjx0 ZXh0IHRleHQtYW5jaG9yPSIiIHg9IjEzLjAwIiB5PSI2NjcuNSIgZm9udC1z aXplPSIxMiIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZpbGw9InJnYigwLDAs MCkiICA+NDE8L3RleHQ+CjwvZz4KPGcgY2xhc3M9ImZ1bmNfZyIgb25tb3Vz ZW92ZXI9InModGhpcykiIG9ubW91c2VvdXQ9ImMoKSIgb25jbGljaz0iem9v bSh0aGlzKSI+Cjx0aXRsZT41OSAoMzQsODI2IHNhbXBsZXMsIDk5LjI4JSk8 L3RpdGxlPjxyZWN0IHg9IjEwLjAiIHk9IjM2OSIgd2lkdGg9IjExNzEuNSIg aGVpZ2h0PSIxNS4wIiBmaWxsPSJyZ2IoMjQzLDc1LDE1KSIgcng9IjIiIHJ5 PSIyIiAvPgo8dGV4dCB0ZXh0LWFuY2hvcj0iIiB4PSIxMy4wMCIgeT0iMzc5 LjUiIGZvbnQtc2l6ZT0iMTIiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmaWxs PSJyZ2IoMCwwLDApIiAgPjU5PC90ZXh0Pgo8L2c+CjxnIGNsYXNzPSJmdW5j X2ciIG9ubW91c2VvdmVyPSJzKHRoaXMpIiBvbm1vdXNlb3V0PSJjKCkiIG9u Y2xpY2s9Inpvb20odGhpcykiPgo8dGl0bGU+NDkgKDM0LDgyNiBzYW1wbGVz LCA5OS4yOCUpPC90aXRsZT48cmVjdCB4PSIxMC4wIiB5PSI1MjkiIHdpZHRo PSIxMTcxLjUiIGhlaWdodD0iMTUuMCIgZmlsbD0icmdiKDIwOSwzMyw0Myki IHJ4PSIyIiByeT0iMiIgLz4KPHRleHQgdGV4dC1hbmNob3I9IiIgeD0iMTMu MDAiIHk9IjUzOS41IiBmb250LXNpemU9IjEyIiBmb250LWZhbWlseT0iVmVy ZGFuYSIgZmlsbD0icmdiKDAsMCwwKSIgID40OTwvdGV4dD4KPC9nPgo8ZyBj bGFzcz0iZnVuY19nIiBvbm1vdXNlb3Zlcj0icyh0aGlzKSIgb25tb3VzZW91 dD0iYygpIiBvbmNsaWNrPSJ6b29tKHRoaXMpIj4KPHRpdGxlPjM4ICgzNCw4 MjYgc2FtcGxlcywgOTkuMjglKTwvdGl0bGU+PHJlY3QgeD0iMTAuMCIgeT0i NzA1IiB3aWR0aD0iMTE3MS41IiBoZWlnaHQ9IjE1LjAiIGZpbGw9InJnYigy MjYsMywyNykiIHJ4PSIyIiByeT0iMiIgLz4KPHRleHQgdGV4dC1hbmNob3I9 IiIgeD0iMTMuMDAiIHk9IjcxNS41IiBmb250LXNpemU9IjEyIiBmb250LWZh bWlseT0iVmVyZGFuYSIgZmlsbD0icmdiKDAsMCwwKSIgID4zODwvdGV4dD4K PC9nPgo8ZyBjbGFzcz0iZnVuY19nIiBvbm1vdXNlb3Zlcj0icyh0aGlzKSIg b25tb3VzZW91dD0iYygpIiBvbmNsaWNrPSJ6b29tKHRoaXMpIj4KPHRpdGxl PjI2ICgzNCw4MjYgc2FtcGxlcywgOTkuMjglKTwvdGl0bGU+PHJlY3QgeD0i MTAuMCIgeT0iODk3IiB3aWR0aD0iMTE3MS41IiBoZWlnaHQ9IjE1LjAiIGZp bGw9InJnYigyMjAsMTg2LDcpIiByeD0iMiIgcnk9IjIiIC8+Cjx0ZXh0IHRl eHQtYW5jaG9yPSIiIHg9IjEzLjAwIiB5PSI5MDcuNSIgZm9udC1zaXplPSIx MiIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZpbGw9InJnYigwLDAsMCkiICA+ MjY8L3RleHQ+CjwvZz4KPGcgY2xhc3M9ImZ1bmNfZyIgb25tb3VzZW92ZXI9 InModGhpcykiIG9ubW91c2VvdXQ9ImMoKSIgb25jbGljaz0iem9vbSh0aGlz KSI+Cjx0aXRsZT5tYWluIDM1MDAxNzQgKDMwIHNhbXBsZXMsIDAuMDklKTwv dGl0bGU+PHJlY3QgeD0iMTE4NC4wIiB5PSIxMjgxIiB3aWR0aD0iMS4wIiBo ZWlnaHQ9IjE1LjAiIGZpbGw9InJnYigyMDksMjAyLDQ3KSIgcng9IjIiIHJ5 PSIyIiAvPgo8dGV4dCB0ZXh0LWFuY2hvcj0iIiB4PSIxMTg2Ljk4IiB5PSIx MjkxLjUiIGZvbnQtc2l6ZT0iMTIiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBm aWxsPSJyZ2IoMCwwLDApIiAgPjwvdGV4dD4KPC9nPgo8ZyBjbGFzcz0iZnVu Y19nIiBvbm1vdXNlb3Zlcj0icyh0aGlzKSIgb25tb3VzZW91dD0iYygpIiBv bmNsaWNrPSJ6b29tKHRoaXMpIj4KPHRpdGxlPjIgKDM0LDgzNiBzYW1wbGVz LCA5OS4zMCUpPC90aXRsZT48cmVjdCB4PSIxMC4wIiB5PSIxMjgxIiB3aWR0 aD0iMTE3MS44IiBoZWlnaHQ9IjE1LjAiIGZpbGw9InJnYigyMDYsODIsNCki IHJ4PSIyIiByeT0iMiIgLz4KPHRleHQgdGV4dC1hbmNob3I9IiIgeD0iMTMu MDAiIHk9IjEyOTEuNSIgZm9udC1zaXplPSIxMiIgZm9udC1mYW1pbHk9IlZl cmRhbmEiIGZpbGw9InJnYigwLDAsMCkiICA+MjwvdGV4dD4KPC9nPgo8ZyBj bGFzcz0iZnVuY19nIiBvbm1vdXNlb3Zlcj0icyh0aGlzKSIgb25tb3VzZW91 dD0iYygpIiBvbmNsaWNrPSJ6b29tKHRoaXMpIj4KPHRpdGxlPjE1ICgzNCw4 MjYgc2FtcGxlcywgOTkuMjglKTwvdGl0bGU+PHJlY3QgeD0iMTAuMCIgeT0i MTA3MyIgd2lkdGg9IjExNzEuNSIgaGVpZ2h0PSIxNS4wIiBmaWxsPSJyZ2Io MjIzLDU3LDIyKSIgcng9IjIiIHJ5PSIyIiAvPgo8dGV4dCB0ZXh0LWFuY2hv cj0iIiB4PSIxMy4wMCIgeT0iMTA4My41IiBmb250LXNpemU9IjEyIiBmb250 LWZhbWlseT0iVmVyZGFuYSIgZmlsbD0icmdiKDAsMCwwKSIgID4xNTwvdGV4 dD4KPC9nPgo8ZyBjbGFzcz0iZnVuY19nIiBvbm1vdXNlb3Zlcj0icyh0aGlz KSIgb25tb3VzZW91dD0iYygpIiBvbmNsaWNrPSJ6b29tKHRoaXMpIj4KPHRp dGxlPjUyICgzNCw4MjYgc2FtcGxlcywgOTkuMjglKTwvdGl0bGU+PHJlY3Qg eD0iMTAuMCIgeT0iNDgxIiB3aWR0aD0iMTE3MS41IiBoZWlnaHQ9IjE1LjAi IGZpbGw9InJnYigyMjcsMTEwLDMyKSIgcng9IjIiIHJ5PSIyIiAvPgo8dGV4 dCB0ZXh0LWFuY2hvcj0iIiB4PSIxMy4wMCIgeT0iNDkxLjUiIGZvbnQtc2l6 ZT0iMTIiIGZvbnQtZmFtaWx5PSJWZXJkYW5hIiBmaWxsPSJyZ2IoMCwwLDAp IiAgPjUyPC90ZXh0Pgo8L2c+CjxnIGNsYXNzPSJmdW5jX2ciIG9ubW91c2Vv dmVyPSJzKHRoaXMpIiBvbm1vdXNlb3V0PSJjKCkiIG9uY2xpY2s9Inpvb20o dGhpcykiPgo8dGl0bGU+NTEgKDM0LDgyNiBzYW1wbGVzLCA5OS4yOCUpPC90 aXRsZT48cmVjdCB4PSIxMC4wIiB5PSI0OTciIHdpZHRoPSIxMTcxLjUiIGhl aWdodD0iMTUuMCIgZmlsbD0icmdiKDIxMiwxMjQsMzUpIiByeD0iMiIgcnk9 IjIiIC8+Cjx0ZXh0IHRleHQtYW5jaG9yPSIiIHg9IjEzLjAwIiB5PSI1MDcu NSIgZm9udC1zaXplPSIxMiIgZm9udC1mYW1pbHk9IlZlcmRhbmEiIGZpbGw9 InJnYigwLDAsMCkiICA+NTE8L3RleHQ+CjwvZz4KPGcgY2xhc3M9ImZ1bmNf ZyIgb25tb3VzZW92ZXI9InModGhpcykiIG9ubW91c2VvdXQ9ImMoKSIgb25j bGljaz0iem9vbSh0aGlzKSI+Cjx0aXRsZT40MyAoMzQsODI2IHNhbXBsZXMs IDk5LjI4JSk8L3RpdGxlPjxyZWN0IHg9IjEwLjAiIHk9IjYyNSIgd2lkdGg9 IjExNzEuNSIgaGVpZ2h0PSIxNS4wIiBmaWxsPSJyZ2IoMjUxLDQ3LDQpIiBy eD0iMiIgcnk9IjIiIC8+Cjx0ZXh0IHRleHQtYW5jaG9yPSIiIHg9IjEzLjAw IiB5PSI2MzUuNSIgZm9udC1zaXplPSIxMiIgZm9udC1mYW1pbHk9IlZlcmRh bmEiIGZpbGw9InJnYigwLDAsMCkiICA+NDM8L3RleHQ+CjwvZz4KPC9zdmc+ Cg== --------------080700060902090205020506 Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers --------------080700060902090205020506--